最简单实用的方法:
默认为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。
- 创建自定义网络:
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
评论专区