docker安裝完畢后,會自動生成一個網卡名為docker0的網橋,如果其默認分配的網段地址和已有地址段沖突,可按如下步驟修改。
- 查看默認地址段如下
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:6e:e3:0a:62 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
- 刪除原有配置
yum install bridge-utils
systemctl stop docker.service
ip link set dev docker0 down
brctl delbr docker0
iptables -t nat -F POSTROUTING
- 創建新的網橋
brctl addbr docker0
ip addr add 172.66.1.1/24 dev docker0
ip link set dev docker0 up
- 在docker配置文件中追加參數
# cat /etc/docker/daemon.json
{
"bip": "172.66.1.1/24"
}
- 啟動docker
systemctl start docker.service
- 查看是否更改成功
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.66.1.1 netmask 255.255.255.0 broadcast 172.66.1.255
ether 8e:08:df:00:c3:dc txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
更改docker-compose網橋地址
使用單機容器編碼工具,docker-compose時,容器之間的通信網絡會用到br-xxx網橋,該網橋會在宿主機建立,示例如下:
[root@xingyongsheng ~]# ifconfig | head
br-35fc9d6212bd: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.238.1 netmask 255.255.255.0 broadcast 172.16.238.255
ether 02:42:7a:4f:9a:b9 txqueuelen 0 (Ethernet)
RX packets 6441897 bytes 8754859570 (8.1 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1525889 bytes 953197479 (909.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
該網段也有可能與,已有網段重復,若要修改此網段,可按如下步驟進行。安全停掉所有用docker-compose編排的容器,這里建議使用docker-compose down來徹底停掉容器,並自動幫你移除docker-compose之前創建的網橋。之后修改docker-compose.yml文件,增加自定義網絡段,如下所示。
version: '2.1'
services:
test-service:
image: xxx
container_name: xxxxx
restart: always
networks:
- as4k-test
networks:
as4k-test:
ipam:
config:
- subnet: 172.16.238.0/24
gateway: 172.16.238.1
- 用新的
docker-compose文件,啟動容器。
作者:阿勝4K
出處:https://www.cnblogs.com/asheng2016/p/10532724.html
