我有一个简单的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
示例,因为我已经阅读了很多关于文档/博客中的网络,但无法弄清楚我做错了什么。
谢谢!
您必须创建一个网络以及您希望运行的服务。然后在基本IP和CIDR掩码的范围内给出一个静态IP地址。由于我不了解您的网络,因此您需要将其与网络配置进行匹配,以便网关可以通过与主机相同的网关连接到Internet。应该有设置,所以网关将通过主机,但我不记得如何管理它。我确信有一个更具体的方法来描述这个过程。当我有机会找到答案时,我会看到这个问题。
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时,它会将网络密钥转换为网络命令。
注意:我不能保证这会起作用,因为我不知道你的设置。但这应该让你进入球场。
如果您有任何疑问,请与我联系。
您需要选择主机可以路由到的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/