如何修改 Docker 的虚拟网络网段?

Docker是一种流行的容器技术,它可以让开发者和运维人员在不同的环境中部署和运行应用程序。Docker使用虚拟网络来连接容器和主机,以及容器之间。默认情况下,Docker会创建一个名为bridge的虚拟网络,它使用172.17.0.0/16的网段,也就是说,容器的IP地址范围是从172.17.0.1到172.17.255.254。这个网段可能会和主机或其他网络设备的IP地址冲突,导致网络通信出现问题。因此,有时候我们需要修改Docker的虚拟网络网段,以避免IP地址冲突。

操作方法

  1. 停止所有正在运行的容器,并且停止Docker服务。可以使用下面的命令:
1
2
docker stop $(docker ps -aq)
sudo systemctl stop docker
  1. 编辑Docker的配置文件/etc/docker/daemon.json,如果文件不存在,就创建一个。在文件中添加一个键值对,键为bip,值为我们想要使用的网段。例如,如果我们想要使用192.168.1.0/24的网段,我们可以添加如下内容:
1
2
3
{
"bip": "192.168.1.1/24"
}
  1. 保存并关闭配置文件,并且重启Docker服务。可以使用下面的命令:
1
sudo systemctl start docker
  1. 检查bridge网络的信息,确认网段是否修改成功。可以使用下面的命令:
1
docker network inspect bridge

如果输出中显示了我们指定的网段和IP地址,说明修改成功。

注意事项:

  • 修改虚拟网络网段会导致之前创建的容器失去网络连接,因此建议在修改前备份或删除容器。
  • 修改虚拟网络网段可能会影响其他自定义网络或端口映射的设置,因此建议在修改后检查并重新配置网络相关的选项。
  • 修改虚拟网络网段可能会和其他主机或网络设备的IP地址冲突,因此建议在修改前规划好IP地址分配,并且避免使用公共或保留的IP地址。