我有一台运行 IPv4 和 IPv6(双栈)的 Ubuntu 服务器 16.04 LTS。该服务器也在运行 Docker。但是,每当我尝试访问群中的容器时都会遇到问题,但只能通过 IPv6。这是我的步骤:
我创建了一个运行 gnuicron 网络服务器的简单应用程序:
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])
Run Code Online (Sandbox Code Playgroud)
我gunicorn -w 4 -b [::]:5678 myapp:app在我的服务器上运行它,并通过在我的网络中的双栈客户端上运行它来验证它是否有效:
$ curl --connect-timeout 15 http://[2001:db8:db0::5]:5678
Hello, World!
$ curl --connect-timeout 15 http://192.168.10.5:5678
Hello, World!
Run Code Online (Sandbox Code Playgroud)
我写了一个Dockerfile并运行它:
docker build -t docker_ipv6_test .
docker run --rm --init -p 5678:5678 docker_ipv6_test
Run Code Online (Sandbox Code Playgroud)
我运行与 about 相同的验证,它按预期工作。然后我写了一个docker-compose.yml: …