脚本:
嘿,我在用集装箱做码头工人。
此合成文件在Windows 10上的MA Local Docker桌面上的工作方式类似于Charm。
我用网络配置了自己的网络
driver bridge.
现在我想用ubuntu vm在外部服务器上运行docker compose。
我有到服务器的远程putty连接。当我奔跑
docker-compose up
我的所有服务都成功启动。我还运行了portainer,在上面有一个gui控件。
问题:
就像我说的,我所有的服务都是跑步。与本地设置的唯一区别是,我将Portainer作为单个容器启动。我无法用浏览器连接到Portainer并检查整个设置。但是当我想调用我的公开容器时,我无法获得连接并获得连接失败错误。
当我查看容器规范中portainer的ip address列时,我发现portainer的ip与docker compose容器的ip不同。因此portainer有172.17.xxx,而所有其他容器都以172.20.xxx开头显然,我的专用网络中的公开端口没有公开到主机网桥网络。
我所期望的
我希望我的公开端口可以通过我的虚拟机的IP使用,就像我的Portainer实例一样。
思想
我对Docker很陌生所以我查了一下
docs
我想因为这个描述:
在用户定义的网桥网络中,不支持链接。你
可以在此网络中的容器上公开和发布容器端口。
如果您想成为网桥网络的一部分,这很有用
可用于外部网络。
…作为网络驱动程序的网桥将我的网络连接到本地主机Internet连接。
问题:
当我把Portainer从我的作文中分离出来的时候有什么问题吗?
当我在外部服务器上而不是在本地主机上运行compose时,是否需要记住其他一些东西?
Compsose网络配置:
networks:
my_net:
driver: bridge
我的作曲版本是2.1
更新:
Docker PS说一切准备就绪
我想通过互联网访问的容器上的Docker InSect:
"NetworkSettings": {
"Bridge": "",
"SandboxID": "9e1e335ab30f1f4d3f690e8902e06523fa095e7d8bshddkdksis7d66s7sjdjd",
"HairpinMode": false,
"LinkLocalIPv6Address": "",
"LinkLocalIPv6PrefixLen": 0,
"Ports": {
"7778/tcp": [
{
"HostIp": "0.0.0.0",
"HostPort": "7778"
}
]
},
"SandboxKey": "/var/run/docker/netns/9e1e386ttf56",
"SecondaryIPAddresses": null,
"SecondaryIPv6Addresses": null,
"EndpointID": "",
"Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"IPAddress": "",
"IPPrefixLen": 0,
"IPv6Gateway": "",
"MacAddress": "",
"Networks": {
"my_net": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"3cb72e02c43b",
"usermanagement-service"
],
"Gateway": "172.20.xx.x",
"IPAddress": "172.20.xx.xx",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"DriverOpts": null
}
}
}
}