目录
1、环境介绍
注:以下全文中通用的名称,自建网络名称:test-net,容器名称:test-nginx
1)docker版本
[root@localhost ~]# docker -v
Docker version 20.10.10, build b485636
2)docker-compose版本
[root@localhost ~]# docker-compose -v
docker-compose version 1.26.2, build eefe0d31
3)docker network 指令
connect 容器连接到网络
create 创建新的网络
disconnect 容器脱离网络
inspect 查看详细信息
ls 网络列表
prune 删除所有未使用的网络
rm 删除指定网络
2、地址池创建
1)自定义默认地址池bridge
修改daemon.json文件
[root@localhost ~]# cat > /etc/docker/daemon.json << EOF
{
"debug": true,
"default-address-pools": [
{
"base": "172.17.0.0/16",
"size": 24
}
],
"registry-mirrors": ["http://hub-mirror.c.163.com"]
}
EOF
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
2)创建自定义地址池
①手工创建地址池
[root@localhost ~]# docker network create -d bridge --subnet 172.16.0.0/16 --gateway 172.16.0.1 test-net
②通过docker-compose.yml文件创建(后文有描述)
3、手工分配地址
注:手工指定IP只能使用自定义的网络,默认bridge地址池是不能指定的
1)通过指令分配
①获取nginx镜像
[root@localhost ~]# docker pull nginx
②创建容器,连接到自定义网络并指定IP,
[root@localhost ~]# docker run -d --name test-nginx nginx
[root@localhost ~]# docker network connect test-net test-nginx --ip 172.16.1.8
③修改自定义网络中的容器IP
[root@localhost ~]# docker network disconnect test-net test-nginx
[root@localhost ~]# docker network connect test-net test-nginx --ip 172.16.1.12
④创建容器时直接加入自定义网络
[root@localhost ~]# docker run -d --name test-nginx --network test-net --ip 172.16.1.8 nginx
2)通过docker-compose分配
注:这个版本的docker-compose不支持写网关地址
①修改配置文件,加入networks部分
[root@localhost ~]# vim docker-compose.yml
version: "2"
networks:
test-net:
ipam:
config:
- subnet: 172.16.1.0/24
services:
nginx:
image: nginx:latest
networks:
test-net:
ipv4_address: 172.16.1.2
②启动/删除容器
[root@localhost ~]# docker-compose up -d
[root@localhost ~]# docker-compose down