docker 網路實踐

2022-05-02 16:42:08 字數 3782 閱讀 7321

#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 容器 ...