无法连接到Windows上的Docker容器

我是新的Docker。 我下载了图像,并用命令启动了容器

docker-compose up -d 

我有一个容器configuration文件:

  algotrader: image: algotrader/algotrader command: -i links: - mysql - ibgateway ports: - 9090:9090 - 61614:61614 ibgateway: image: algotrader/ibgateway environment: TWS_USERNAME: edemo TWS_PASSWORD: demouser volumes: - /var/lib/tws mysql: image: mysql environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: algotrader ports: - 3306:3306 volumes: - /var/lib/mysql 

当我运行命令

 docker ps 

它显示了在Docker容器中运行的应用程序列表:

 c:\Program Files\Docker\Docker\resources>docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 1e7fe9da1ad7 algotrader/algotrader "bin/docker-run.sh -i" 28 hours ago Up About an hour 10.0.75.2:9090->9090/tcp, 10.0.75.2:61614->61614/tcp docker_algotrader_1 72fe4fd2bfb8 algotrader/ibgateway "/usr/local/ibgateway" 28 hours ago Up About an hour 4001/tcp docker_ibgateway_1 3b739113b4e9 mysql "docker-entrypoint.sh" 28 hours ago Up About an hour 10.0.75.2:3306->3306/tcp docker_mysql_1 c367f3dca162 algotrader/ibgateway "/usr/local/ibgateway" 28 hours ago Up 26 minutes 4001/tcp resources_ibgateway_1 

但是当我运行命令获取IP地址时:

 docker-machine ls 

它显示我的机器清单:

 c:\Program Files\Docker\Docker\resources>docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS 

此外,我能够连接到该容器上的bash:

 docker exec -it 1e7fe9da1ad7 bash 

内部容器ping IP地址172.17.0.4正在工作,但不是从Windows:

 root@1e7fe9da1ad7:/usr/local/algotrader# ping 172.17.0.4 PING 172.17.0.4 (172.17.0.4): 56 data bytes 64 bytes from 172.17.0.4: icmp_seq=0 ttl=64 time=0.055 ms 

通过文档它应该能够连接到端口9090,但从Windows这个地址不可用。

你知道如何得到正确的地址或检查是否closures到外面(Windows)?

谢谢!

从Windows开始,您需要虚拟docker-machine ip <yourMachine>或Hyper-V)
在使用VirtualBox时,请参阅“ 如何configurationdocker组合以正确显示端口? ”作为示例。

然后,您需要将9090端口转发到Windows主机,以便直接从Windows访问该端口。

我只是从头重新安装了Docker Tools。 它开始工作。