泊坞窗。如何在特定的本地IP上运行我的容器

时间:2017-12-28 20:31:36

标签: macos docker networking docker-compose docker-networking

我有一个简单的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示例,因为我已经阅读了很多关于文档/博客中的网络,但无法弄清楚我做错了什么。

谢谢!

2 个答案:

答案 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/