docker自定义网络模式,实现容器固定ip地址
我们在使用Docker容器时候,每次启动容器,容器分配到的虚拟IP经常变动,比如我们现在使用Mycat + Mysql,我们是需要配置Mysql服务IP地址的,这个IP是Docker分配的虚拟IP,假如老是变,那我们还得老是修改配置,那就很麻烦了;所以我们需要固定手工分配容器IP;
Docker默认使用的是bridge 桥接网络模式,
我们可以查看下 docker network ls
我们创建自定义网络模式;
docker network create --subnet=172.20.0.0/16 extnetwork
创建容器并指定IP;
通过--net extnetwork --ip 172.20.0.2 指定
案例:
docker run -p 3306:3306 --name master -d -v /home/mysql/mysql.conf.d/:/etc/mysql/mysql.conf.d/ -v /home/mysql/log/:/var/log --net extnetwork --ip 172.20.0.2 -e MYSQL_ROOT_PASSWORD=123456 镜像ID
docker run -p 3307:3306 --name slave -d -v /home/mysql2/mysql.conf.d/:/etc/mysql/mysql.conf.d/ -v /home/mysql2/log/:/var/log --net extnetwork --ip 172.20.0.3 -e MYSQL_ROOT_PASSWORD=123456 镜像ID
我们启动两个Mysql容器,并且固定分配IP 172.20.0.2和172.20.0.3
(注意:这里必须用172.20.0.2开始分配,因为172.20.0.1是网关;)
docker inspect 容器id
完美分配了;
我们后面mycat也分配一个 172.20.0.4 这样就容易运维了;
扩展:
docker network rm extnetwork #删除网络
docker rm -f $(docker ps -qa) #删除所有容器
下一篇:mysql主从复制配置