Docker_學習筆記系列之網絡

  1. docker網絡簡介

bridge: 橋接 【docker默認】mysql

docker network --helpnginx

  • docker每生成一個容器,就分配給容器一個ip,同事在宿主機增長一對網卡,即docker用的虛擬接口協議,經過evth-pair,充當一個橋樑,鏈接各類虛擬設備,默認經過docker0網關來通訊的,採用橋接模式redis

  • docker容器之間網絡是互通的

8: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
link/ether 02:42:45:be:08:ce brd ff:ff:ff:ff:ff:ff
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
valid_lft forever preferred_lft forever
inet6 fe80::42:45ff:febe:8ce/64 scope link
valid_lft forever preferred_lft forever
155146: veth93406a5@if155145: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker_gwbridge state UP
link/ether 4e:c7:49:8e:ed:e6 brd ff:ff:ff:ff:ff:ff link-netnsid 1
inet6 fe80::4cc7:49ff:fe8e:ede6/64 scope link
valid_lft forever preferred_lft foreversql

2.容器之間經過容器名通訊--link【通常不使用】

啓動兩個容器,如test01,test02

下面這種方式就是經過容器名使test01 可以ping通test02

docker -d run --name test01 --link test02 nginx
docker exec -it test01 ping test02docker

但若是用test02去訪問test01會出現不一樣,由於link的本質是作了服務名與ip的映射且是單向的,因此不通,除非test02-->test01也配上--link,本質是向hosts中增長映射

經過以下命令可查到

docker network inspect 網絡編號tomcat

3.自定義網絡

默認啓動容器,有參數--net bridge,這個就是docker0

docker run -d -P --name tomcat01 tomcat
等同於 docker run -d -P --name tomcat01 --net bridge tomcat安全

docker0的特色:默認,域名不能直接訪問,可經過--link打通,自定義是自動開通的

docker network create --help網絡

docker network create --driver bridge --subnet 192.168.0.0/16 --gatway 192.168.0.1 myfirstnetide

--driver 指定網絡模式
--subnet 指定子網掩碼
--gatway 指定網關code

查看建立的網絡

docker network inspect myfirstnet

使用本身建立的網絡

docker run -d -P --name test001 --net myfirstnet

4.不一樣的子網如何互聯,

創建本身的網絡保證不一樣的服務處於不一樣的網絡中,保證網絡安全性

  1. redis集羣 net1 192.168.1.0
  2. mysql集羣 net2 192.168.2.0
    原理:經過給容器設置兩個ip,至關於向兩個不一樣的網絡各申請一個ip

docker network connect [OPTIONS] NETWORK CONTAINER [flags]

如使容器redis01與myslq01通訊

docker network connect net2 redis01

上面的本質是將redis01在net2中申請了一個ip

docker network net2 inspect

相關文章
相關標籤/搜索