我有一个简单的docker-compose.yml
文件,它正在提供一些静态文件:
version: '3'
services:
nginx:
container_name: docs_nginx
image: nginx:latest
ports:
- "80:80"
- "443:443"
volumes:
- ./:/var/www
- ./docker/vhost.conf:/etc/nginx/conf.d/default.conf
现在可以在
访问它127.0.0.1
0.0.0.0
是否有可能以某种方式调整docker-compose.yml
以便在127.127.127.127
运行我的容器?
作为答案,我会接受一个有效的docker-compose.yml
示例,因为我已经阅读了很多关于文档/博客中的网络,但无法弄清楚我做错了什么。
谢谢!
答案 0 :(得分:1)
您必须创建一个网络以及您希望运行的服务。然后在基本IP和CIDR掩码的范围内给出一个静态IP地址。由于我不了解您的网络,因此您需要将其与网络配置进行匹配,以便网关可以通过与主机相同的网关连接到互联网。应该有设置,所以网关将通过主机,但我不记得如何管理它。我确信有一个更具体的方法来描述这个过程。当我有机会找到答案时,我会看到这个问题。
version: '3'
services:
nginx:
container_name: docs_nginx
image: nginx:latest
ports:
- "80:80"
- "443:443"
networks:
vpcbr:
ipv4_address: 10.5.0.6
volumes:
- ./:/var/www
- ./docker/vhost.conf:/etc/nginx/conf.d/default.conf
networks:
vpcbr:
driver: bridge
ipam:
config:
- subnet: 10.5.0.0/16
gateway: 10.5.0.1
https://docs.docker.com/engine/userguide/networking/#custom-network-plugins
这可以很好地了解在为docker容器创建网络时发生了什么。当您调用docker-compose时,它会将网络密钥转换为网络命令。
注意:由于我不了解您的设置,因此无法保证此功能正常。但这应该让你进入球场。
如果您有任何疑问,请与我联系。
答案 1 :(得分:0)
您想要选择主机可以路由到的IP地址。如果你的主机IP地址是192.168.0.50,它在yml文件中可能看起来像这样:
version: "2"
services: host1:
networks:
mynet:
ipv4_address: 192.168.0.101 networks: mynet:
driver: bridge
ipam:
config:
- subnet: 192.168.0.0/24
您还可以使用以下列出的手动步骤在启动脚本中指定IP地址: https://jpetazzo.github.io/2013/10/16/configure-docker-bridge-network/