Docker从主机使用ip

时间:2018-06-21 20:48:49

标签: windows docker networking docker-for-windows

我有一个问题,我想创建多个docker容器(使用docker-compose)并使用IP地址调用每个容器。 在Linux主机上,它可以工作,但在Windows上不能作为主机。

示例:

container 1 (php) ip: 192.168.100.10  
container 2 (mysql) ip: 192.168.100.11  
container 3 (nginx) ip: 192.168.100.12  

所以我想添加一个带有nginx ip的主机项,以使用诸如project.local之类的主机名在浏览器上进行开发。

有人知道我必须在Windows上做什么才能实现这一点吗?

1 个答案:

答案 0 :(得分:1)

每个容器为与容器一起使用的基本系统使用一个内部IP,例如,如果您使用的是Linux,则所有容器都将具有一个内部IP,可以在容器之间看到该内部IP,但对于主体主机则不可见想要连接到容器,您将需要使用端口,例如用于MySQL 3306的端口,如果在它们之间看不到容器,则需要使用docker compose或bash创建链接或网络以设置此配置。我举一个例子:

https://docs.docker.com/compose/networking/#specify-custom-networks

version: "3"
services:

  proxy:
    build: ./proxy
    networks:
      - frontend
  app:
    build: ./app
    networks:
      - frontend
      - backend
  db:
    image: postgres
    networks:
      - backend

networks:
  frontend:
    # Use a custom driver
    driver: custom-driver-1
  backend:
    # Use a custom driver which takes special options
    driver: custom-driver-2
    driver_opts:
      foo: "1"
      bar: "2"

https://docs.docker.com/compose/networking/#links

version: "3"
services:

  web:
    build: .
    links:
      - "db:database"
  db:
    image: postgres