【发布时间】:2019-04-14 20:47:33
【问题描述】:
在 Docker 中,我有 3 个容器,分别是 node、mysql 和 redis。当我运行 sudo iptables -t nat -L -n 时,我可以看到这些容器在不同的 IP 地址上运行,如下所示
但是,服务的 IP 地址顺序和 IP 地址(在某些机器上是 172.23.0.x,在某些机器上是 172.21.0.x)可能每次我执行 docker-compose up --build 时都不同,所以如果我希望应用程序正常工作,我必须手动为每个服务配置 IP 地址。有什么方法可以自动为docker-compose.yml 文件中的每个服务映射一个固定的IP 地址?谢谢。这是我的docker-compose.yml 文件:
version: "3"
services:
universe:
build: .
working_dir: /usr/src
volumes:
- .:/usr/src
- /usr/src/node_modules/
ports:
- "3000:3000"
- "8000:8000"
restart: always
# Redis Alpine
redis:
image: redis:alpine
ports:
- "127.0.0.1:6379:6379"
# MySQL 5.7
mysql:
build:
context: ./docker/mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: database_name
MYSQL_USER: database_user
MYSQL_PASSWORD: database_password
volumes:
- /config/scripts:/docker-entrypoint-initdb.d
restart: always
ports:
- "127.0.0.1:3306:3306"
【问题讨论】:
-
不要将信息发布为可以是文本的图像。
标签: docker mapping ip-address