我有一个问题,我想创建多个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上做什么才能实现这一点吗?
答案 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