docker容器的网络在默认情况下会使用bridge模式,其ip地址是dhcp获取的,而在某些场景下,需要固定docker容器的ip。
这里使用docker-compose工具编排容器。
直接奉上docker-compose.yml
version: '2'
services:
mysql:
image: daocloud.io/mysql:latest
environment:
- MYSQL_ROOT_PASSWORD=root
container_name: mysql
networks:
nocturne:
ipv4_address: 172.25.0.15
restart: always
networks:
nocturne:
driver: bridge
ipam:
config:
- subnet: 172.25.0.0/24
首先在network中设置自己定义的网络nocturne,设置subnet,注意driver使用bridge;
然后在具体要固定ip的service下的networks设置为上一步定义的nocturne,然后设置subnet中某个具体的ip。
这样当docker-compose起容器的时候会先创建定义的bridge网络,然后再起容器。
使用docker inspect mysql
查看容器ip是否为172.25.0.15
。