📅  最后修改于: 2023-12-03 15:23:45.645000             🧑  作者: Mango
在 Docker 网络中,默认情况下容器会分配一个动态 IP 地址。然而,在某些情况下,需要为容器分配静态 IP 地址。本文将介绍如何为 Docker 容器提供静态 IP。
Docker 内置了一些网络,如 bridge
、host
等,但这些网络都是动态分配 IP 地址的。为了分配静态 IP 地址,可以使用 Docker 自定义网络。
首先,创建一个自定义网络:
docker network create --subnet=<SUBNET> <NETWORK_NAME>
其中,<SUBNET>
是 IP 地址段,<NETWORK_NAME>
是网络名称。
例如:
docker network create --subnet=172.20.0.0/16 mynet
接着,创建容器并指定静态 IP 地址:
docker run --name=<CONTAINER_NAME> --net=<NETWORK_NAME> --ip=<STATIC_IP> <IMAGE_NAME>
其中,<CONTAINER_NAME>
是容器名称,<NETWORK_NAME>
是网络名称,<STATIC_IP>
是静态 IP 地址,<IMAGE_NAME>
是镜像名称。
例如:
docker run --name=mycontainer --net=mynet --ip=172.20.0.2 nginx
这样,容器就被分配了静态 IP 地址。
另一种方式是使用 Docker Compose,通过配置文件来指定网络和 IP 地址。
在 Docker Compose 文件中,可以使用 networks
和 ip
来分别指定网络和 IP 地址,示例如下:
version: '3'
services:
web:
image: nginx
networks:
mynet:
ipv4_address: 172.20.0.2
networks:
mynet:
ipam:
config:
- subnet: 172.20.0.0/16
在配置好 Docker Compose 文件后,可以使用 docker-compose up
命令启动容器:
docker-compose up -d
这样,容器就被分配了静态 IP 地址。可以使用 docker-compose ps
命令来查看容器的 IP 地址和状态。
通过以上两种方式,在 Docker 中为容器分配静态 IP 地址。使用 Docker 自定义网络和 Docker Compose 都可以实现这一功能,具体可以根据实际情况选择。