docker改容器IP的两种方法

 人参与 | 时间:2025-06-24 12:33:55

最简单实用的方法:

默认为docker的内网网段为172.17.0.0/16󿀌如果公司的内网也是172.17.x.x的话,路由冲突会发生

解决方案。

改变路由的比较方法,docker配置的bip可以从一开始就改为169.254.0.1/24󿀌可以避免冲突

在daemon配置文件中添加"bip":“169.254.0.1/24,重启docker就可以了。

1.

2.

3.

4.

[root@st-dev6 ~]。# vim /etc/docker/daemon.json。

{ 。

"bip":。"169.254.0.1/24"

}。

systemctl restart docker。

如果已经建好了容器󿀌#xff1可以通过以下两种方法进行更改a;

方法1:在。Docker。中间,默认情况下,容器采用桥接模式的网络,这个网络是由的。Docker。自动管理。如果你想为容器指定一个。IP。地址,您可以创建一个自定义的网络,并在操作容器时指定。IP。。

以下是创建自定义网络并指定容器。IP。步骤:

请注意,指定的。IP。地址必须在您创建的自定义网络的子网络范围内。如果您想修改正在运行的容器IP。地址,您需要先停止容器,然后删除它󿀌并使用新的。IP。重新创建地址。

docker stop myapp。

docker rm myapp。

  1. 创建自定义网络:

docker network create --subnet=172.18.0.0/16 mynet。

     2.操作容器时指定IP:

docker run --network mynet --ip 172.18.0.22 -d nginx。

在这个例子中间,我们创建了一个名字。mynet。自定义网络,并指定了一个。172.18.0.0/16.子网。然后,我们运行一个。nginx。容器,并将其。IP。设置为。172.18.0.22.。

验证: docker inspect myapp | grep "IPAddress"

方法二:想要修改正在运行的jms_redis容器IP。

1、docker network ls 查看网络情况。

[root@docker-server containers]# docker network ls。
NETWORK ID     NAME      DRIVER    SCOPE。
ccc39f6dede6   bridge    bridge    local。
b6af872cbbd6   host      host      local。
4ceb41fb1   jms_net   bridge    local。
9f111fc0102f   mynet     bridge    local。
740c9ce10fc1   none      null      local。
 。

2、docker network inspect 4c1eb41fb1a8。
查看jms___net 具体配置ID。

或者使用这个命令。

[root@docker-server containers]# docker inspect jms_redis |grep IPAddress。
            "SecondaryIPAddresses": null,
            "IPAddress": "",
                    "IPAddress": "192.168.250.2",
 。

3、需要进入容器的网络命名空间。PID(可以使用以下命令获取容器;Process ID)号。

[root@docker-server containers]# docker inspect -f '{ 。{ .State.Pid}}' 9d06599e52df。
21985。

4、网络命名空间࿱可以使用以下命令进入容器a;

[root@docker-server containers]# nsenter --target 21985 --net /bin/bash。
 。

容器内部,可使用ip addr命令查看容器的网络配置信息。

4、修改jms__redis 容器IP。

ip addr add 172.18.0.22/16 dev eth0。

ip link set eth0 up。
使用ip link set命令打开eth0接口。

再次使用ip addr命令查看容器的网络配置信息,确认修改是否有效。

顶: 2踩: 4