通过docker-compose为Docker容器提供静态IP
我正在尝试为容器提供静态IP地址。我了解我必须创建一个自定义网络。我创建了它,并且桥接接口在主机(Ubuntu
16.x)上已启动。容器从该子网获取IP,但不是我提供的静态IP。
这是我的docker-compose.yml:
version: '2'services:
mysql:
container_name: mysql
image: mysql:latest
restart: always
environment:
- MYSQL_ROOT_PASSWORD=root
ports:
- "3306:3306"
networks:
- vpcbr
apigw-tomcat:
container_name: apigw-tomcat
build: tomcat/.
ports:
- "8080:8080"
- "8009:8009"
networks:
- vpcbr
depends_on:
- mysql
networks:
vpcbr:
driver: bridge
ipam:
config:
- subnet: 10.5.0.0/16
gateway: 10.5.0.1
aux_addresses:
mysql: 10.5.0.5
apigw-tomcat: 10.5.0.6
容器得到10.5.0.2和10.5.0.3,而不是5和6。
回答:
请注意,除非您做的事情允许容器网络从外部路由到内部(例如,macvlan),否则我不建议在Docker中为容器使用固定IP。DNS已经在容器网络内部用于服务发现,并支持容器扩展。在容器网络外部,应使用主机上的裸露端口。有了免责声明,这是您想要的撰写文件:
version: '2'services:
mysql:
container_name: mysql
image: mysql:latest
restart: always
environment:
- MYSQL_ROOT_PASSWORD=root
ports:
- "3306:3306"
networks:
vpcbr:
ipv4_address: 10.5.0.5
apigw-tomcat:
container_name: apigw-tomcat
build: tomcat/.
ports:
- "8080:8080"
- "8009:8009"
networks:
vpcbr:
ipv4_address: 10.5.0.6
depends_on:
- mysql
networks:
vpcbr:
driver: bridge
ipam:
config:
- subnet: 10.5.0.0/16
gateway: 10.5.0.1
以上是 通过docker-compose为Docker容器提供静态IP 的全部内容, 来源链接: utcz.com/qa/416349.html