1. 创建一个自定义网络。使用以下命令创建一个自定义网络:
docker network create --subnet=<子网> <网络名称>

替换 <子网> 为您想要使用的子网,例如 172.18.0.0/16,并将 <网络名称> 替换为您选择的网络名称。

例如:

docker network create --subnet=172.19.0.0/16 network_name

Docker容器指定静态IP地址_docker

  1. 启动容器并指定静态 IP 地址。使用以下命令启动容器,并在启动命令中指定静态 IP 地址
docker run --net <网络名称> --ip <静态IP地址> --name <容器名称> <镜像名称>

替换 <网络名称> 为您在步骤 1 中创建的网络名称,<静态IP地址> 为您想要为容器分配的静态 IP 地址,<容器名称> 为容器的名称,<镜像名称> 为容器所使用的镜像名称。

例如

docker run --net network_name --ip 172.19.0.2 --restart=always --name app-mysql -e MYSQL_ROOT_PASSWORD=password -d mysql:5.6

Docker容器指定静态IP地址_子网_02

  1. 验证静态 IP 地址是否生效。使用以下命令检查容器的 IP 地址:
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' <容器名称或ID>

替换 <容器名称或ID> 为您指定的容器的名称或 ID。命令的输出将显示容器的 IP 地址,确保它与您指定的静态 IP 地址匹配。

例如:

docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' c47990a4d8d

Docker容器指定静态IP地址_docker_03

  1. 删除Docker自己创建的网络

在删除网络之前,需要确保使用该网络创建的所有容器都已经退出(即停止)。如果容器仍在运行,则无法删除网络。

docker network rm <network_name>

Docker容器指定静态IP地址_docker_04