#docker 網路模式環境 centos7.
4 , docker version 17.12.0-ce
docker自帶網路型別 bridge,host,none,container,overlay,macvlan
#本地網路
bridge # --net=bridge 預設模式,nat**
host # --net=host 使用宿主機網路
container # --net=container:容器名或id ,共用其它容器網路
none # --net=none 無網絡卡
#跨主機網路
overlay #vxlan模式
macvlan #使用外部lan,需手動配置
#可以使用其它網路外掛程式
#檢視docker網路
docker network
ls#docker修改本地預設網段
#docker啟動預設建立docker0網橋172.17網段
#新增自定義網段
setopts="
--bip=192.168.55.1/24
"sed -i "
s#^execstart.*#& $setopts #
" /usr/lib/systemd/system/docker.service
grep
'execstart
' /usr/lib/systemd/system/docker.service
#重啟docker
systemctl daemon-reload
systemctl restart docker
ifconfig docker0 |egrep
'inet |flags
'#檢視docker0網橋ip已改
#可使用自定義網橋,建立br0,修改配置 -b=br0
#docker本地網路實踐
#不指定網路,使用預設bridge
docker run -dit --name busybox1 busybox
docker exec -it busybox1 ifconfig
#檢視網路
#host網路
docker run -dit --name busybox-host --net=host busybox
docker exec -it busybox-host ifconfig
#檢視網路,與宿主機一樣
#container網路
docker run -dit --name busybox2 --net=container:busybox1 busybox #使用busybox1網路
docker exec -it busybox1 ifconfig
#檢視網路
#none沒網路
docker run -dit --name busybox-none --net=none busybox
docker exec -it busybox-none ifconfig
#建立本地網路mynet1(自定義網路能設定固定ip)
docker network create --subnet 192.168.58.0/24 --gateway 192.168.58.1
mynet1
docker run -dit --name busybox3 --network mynet1 --ip=192.168.58.18
busybox
docker exec busybox3
ifconfig |egrep
'inet|flags
'#檢視容器網路
#docker 容器 新增網絡卡
docker network connect mynet1 --ip 192.168.58.8
busybox1 #給容器添ip
docker exec $(docker
ps -l -q) ifconfig |egrep
'inet|flags
'#檢視網路
docker network disconnect mynet1 busybox1 #斷開網路,再次檢視網路……
#刪除測試容器、網路
docker
rm -f busybox1 busybox2 busybox3 busybox-host busybox-none
docker network
rmmynet1
#docker跨主機通訊
#overlay網路
本次在docker swarm集群操作
建立docker swarm 集群參考http:
docker swarm集群建立容器,會自動建立overlay網路ingress
docker network
ls#檢視網路
#建立overlay型別網路mynet2,並設定網段、閘道器
docker network create -d overlay --subnet 192.168.59.0/24 --gateway 192.168.59.1
mynet2
docker network inspect mynet2 #檢視網路引數
#swarm集群使用自定義網段mynet2
docker service create --name nginx2 --replicas 2
\ -p 81:80 --network mynet2 hub.test.com:5000/almi/nginx:0.1
#hub.test.com:
5000/almi/nginx:0.1
為內網私有倉庫映象
docker service
ls#swarm集群建立容器預設2個網絡卡,增加了自定義網絡卡
docker exec $(docker
ps -l -q) ifconfig |egrep
'inet|flags
'#檢視網路
#刪除測試
docker service
rmnginx2
docker network
rmmynet2
docker network prune #刪除未使用的網絡卡
# macvlan網路
#宿主機開啟網絡卡混雜模式
ip link set eth0 promisc on
ifconfig eth0 |egrep
'inet |flags
'#建立macvlan模式網路macnet
docker network create -d macvlan -o parent=eth0 macnet \
--subnet 172.16.50.0/24 --gateway 172.16.50.1
#建立容器
docker run -d --name nginx3 --net macnet hub.test.com:5000/almi/nginx:0.1
docker exec nginx3
ping -c 4
nginx3 #測試獲取ip成功
#其它docker節點建立網路、容器,然後ping測試
#刪除測試
docker
rm -f $(docker ps -l)
docker network
rmmacnet
本次macvlan測試環境為虛擬機器,獲取外部vlan失敗
宿主機配置vlan網路+macvlan模式,實現docker vlan網路
使用macvlan,無法與宿主機通訊
docker 建立overlay網路實踐
參考文件 1 step 1 set up a key value store docker machine create driver generic generic ip address 192.168.153.222 generic ssh key ssh id rsa mh keystore ...
Docker 入門實踐
docker兩個最重要的概念是映象和容器。重要。容器 container 映象 images 倉庫 repository 除此之外,鏈結和資料卷也很 docker背後的想法是建立軟體程式可移植的輕量容器,讓其可以在任何安裝了docker的機器上執行,而不用關心底層作業系統,就像野心勃勃的造船者們成功...
Docker實踐記錄
docker run d name 容器名 v 主機指令碼所在目錄 容器對映目錄 w 容器對映目錄 映象 執行指令碼的指令 docker run 命令基本結構 docker run 引數 映象 命令 1.檢視所有記錄 docker logs 容器 2.檢視最近n條記錄 docker logs 容器 ...