一、背景
Docker创建容器时默认采用bridge网络,自行分配ip,不允许自己指定。在实际部署中,我们需要指定容器ip,不允许其自行分配ip,特别是集群。
二、方法
我们可以创建自己的bridge网络 : bridge-dp,创建容器的时候指定网络为bridge-dp并指定ip即可。
- 1 、查看网络模式
docker network ls
- 2、创建一个新的bridge网络
docker network create --driver bridge --subnet=192.168.103.1/24 --gateway=192.168.103.1 bridge-dp
- 3、查看网络信息
docker network inspect bridge-dp
-
4、docker-compose.yml配置
配置完成后,可以使用
-
5、启动报错
如果启动报错,可以考虑是否是没有开启转发,网桥配置完后,需要开启转发,不然容器启动后,就会没有网络,配置/etc/sysctl.conf,添加net.ipv4.ip_forward=1
重启服务,让配置生效
systemctl restart network
查看是否成功,如果返回为“net.ipv4.ip_forward = 1”则表示成功
sysctl net.ipv4.ip_forward
- 6、查看docker所有容器的IP
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
可以在 ~/.bashrc 中写一个 bash 函数:
function docker_ip() {
sudo docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $1
}
function dockeriplist() {
sudo docker inspect -f '{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)
}
查看单个容器IP
docker_ip Container_ID
查看所有容器IP
dockeriplist