IPv6 Docker sürüsü içinde çalışmıyor mu?


3

Hem IPv4 hem de IPv6'yı (çift yığınlı) çalıştıran 16.04 LTS Ubuntu sunucum var. Bu sunucu aynı zamanda Docker'ı da çalıştırıyor. Bununla birlikte, sürüdeki kaplara erişmeye çalıştığımda, ancak yalnızca IPv6 üzerinden sorun yaşıyorum. İşte adımlarım:

Bir gnuicron web sunucusu çalıştıran basit bir uygulama yarattım:

def app(environ, start_response):
    """Simplest possible application object"""
    data = b'Hello, World!\n'
    status = '200 OK'
    response_headers = [
        ('Content-type', 'text/plain'),
        ('Content-Length', str(len(data)))
    ]
    start_response(status, response_headers)
return iter([data])

Bunu gunicorn -w 4 -b [::]:5678 myapp:appsunucumda çalıştırıyorum ve bunu ağımdaki çift yığınlı istemcide çalıştırarak çalıştığını doğruladım:

$ curl --connect-timeout 15 http://[2001:db8:db0::5]:5678
Hello, World!
$ curl --connect-timeout 15 http://192.168.10.5:5678
Hello, World!

Bir Docker dosyası yazıp çalıştırıyorum:

docker build -t docker_ipv6_test .
docker run --rm --init -p 5678:5678 docker_ipv6_test

Hakkında aynı doğrulama yapıyorum ve beklendiği gibi çalışıyor. Sonra bir docker-compose.yml yazarım:

version: '3'
services:
  ipv6_test:
    image: docker_ipv6_test:latest
    deploy:
      replicas: 1
      restart_policy: 
        condition: on-failure
      ports:
        - '5678:5678/tcp'

ve çalıştırın:

docker stack deploy -c docker-compose.yml ipv6_test

Sonra bu olur:

$ curl --connect-timeout 15 http://[2001:db8:db0::5]:5678
curl: (28) Operation timed out after 0 milliseconds with 0 out of 0 bytes received
$ curl --connect-timeout 15 http://192.168.10.5:5678
Hello, World!

Ama yanlış bir şey yapıp yapmadığımı merak ediyor muyum, yoksa bir hataya mı çarptım?

Kodumun ve dosyalarımın tümü burada bulunabilir: https://github.com/SitronNO/docker_ipv6_test

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.