【发布时间】:2016-10-22 09:33:39
【问题描述】:
我必须启动 3 个容器,nginx、wordpress 和 wordpress2。问题是 nginx 容器从 172.17.0.2 开始,wordpress 在 172.18.0.3 和 wordpress2 在 172.19.0.4。 wordpress 容器从配置的 docker-compose.yml 开始,如下所示:
对于wordpress:
version: '2'
services:
db:
image: mysql:5.7
volumes:
- "./.data/db:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
links:
- db
ports:
- "8000:80"
networks:
- ipv4_address: 172.17.0.5
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
对于wordpress2:
version: '2'
services:
db:
image: mysql:5.7
volumes:
- "./.data/db:/var/lib/mysql"
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
links:
- db
ports:
- "8001:80"
networks:
- ipv4_address: 172.17.0.6
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
如您所见,我将 ipv4_address 放在网络字段中,但是当我启动 docker-compose.yml 时,它在这一行显示错误。我认为默认情况下,所有容器通常都在同一个网络上,但在这种情况下不是。你能帮我把所有容器放在同一个子网吗?
【问题讨论】:
-
如果所有 3 个容器都是同一个堆栈的一部分,您是否可以将它们全部放在同一个 docker-compose 文件中?如果可以的话,您可以使用 docker 的内置 dns 通过主机名访问容器,而不必关心特定的 IP 地址。
标签: wordpress networking nginx docker