docker安裝完畢後,會自動生成一個網卡名爲docker0
的網橋,若是其默認分配的網段地址和已有地址段衝突,可按以下步驟修改。html
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
# cat /etc/docker/daemon.json { "bip": "172.66.1.1/24" }
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時,容器之間的通訊網絡會用到br-xxx網橋,該網橋會在宿主機創建,示例以下:docker
[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
文件,增長自定義網絡段,以下所示。json
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 出處:http://www.javashuo.com/article/p-cqukcdvh-cv.html安全