docker网络配置

默认网络模式为NAT模式

1.安装 Docker 时,它会自动创建 3 个网络。可以使用 docker network ls命令列出这些网络。
$ docker network ls
NETWORK ID NAME DRIVER
7fca4eb8c647 bridge bridge
9f904ee27bf5 none null
cf03ee007fb4 host host

通过ifconfig查看docker0的网络设备,docker守护进程默认情况下会将容器连接到bridge网络,docker0即是bridge网络中的虚拟网桥。
一般docker0的IP地址为172.17.0.1/16,容器的IP地址不固定,按启动顺序第一个启动的容器默认自动获取的地址为172.17.0.2/16

2.创建自定义网络来解决IP不固定的问题 (创建的网络为NAT模式)
docker network create --subnet=172.18.0.0/16 bridge2 创建自定义网络bridge2,指定网段172.18.0.0/16
docker run -itd --name container_name --net bridge2 --ip 172.18.0.2 image_name /sbin/init 创建指定网络和ip的容器

3.获取容器ip
docker inspect container_id/name | grep IPAddress

4.给运行中的容器设置端口映射
iptables -t nat -A DOCKER -p tcp --dport 8001 -j DNAT --to-destination tontainer_ip:8000
注:将容器的8000端口映射到docker主机的8001端口

5.如果容器无法联网
首先,cat /proc/sys/net/ipv4/ip_forward 检查是否开启了ipv4转发功能 0为未开启 1为开启
其次,如果开启了还不能联网,则重启一下docker服务 systemctl restart docker