通过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

回到顶部