docker原生網絡的特色即便用場景,即便用測試

docker的3個原生網絡的特色即便用場景
docker網絡,原生網絡:
Docker netwwork ls
1.None網絡html

特色:PS:用到None網絡的容器,會發現他只有一個Loopback迴環的網絡,沒有Mac地址,IP等信息,意味着他不能跟外界通訊,是被隔離起來的網絡。
使用場景:
隔離,意味着安全,因此,此網絡能夠運行關於安全方面的驗證碼,效驗碼等服務。
[root@docker ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
c88c6afa3e8e bridge bridge local
167ae1b36ebf host host local
f7b87e5b97e1 none null localnginx

None:什麼都沒有的網絡: null:表示爲空 bridge:橋接 SCOPE:在本地中是有效的
在倉庫上拉鏡像
docker pull busybox
建立none的容器爲none
docker run -itd --name none --network none busybox
進入none容器
docker exec -it none /bin/shweb

2.host網絡;基於宿主機的網絡docker

特色:PS:用到Host網絡的容器,他的網絡跟宿主機的網絡如出一轍,那是由於,在建立這個容器之初,並無對它的Net網絡棧進行隔離,而是直接使用的宿主機網絡戰。
使用場景:
網絡配置與dockerHost徹底相同,性能較好,但不便之處是靈活性不高,容器與宿主機出現端口衝突問題。(不建議使用,僅供瞭解)
docker run -itd --name host --network host busybox:latest
docker exec -it host /bin/shvim

3.bridge:橋接網絡;brctl show (查看橋接網絡)安全

docker0網卡:
特色:
在咱們安裝docker這個服務的時候,默認就會產生一張docker0的網卡,以版默認ip爲172.17.0.1/16(以後以此類推,就算刪除已有ip,也不會在使用)
容器默認使用的網絡是docker0網絡,docker0此時至關於一個路由器,基於此網絡的容器,網段都是和docker0一致的。網絡

docker run -itd --name test1 busybox:latest
docker exec -it test1 /bin/sh
Ip a
Brctl showide

4.自定義網絡:oop

自帶了一個ContainerDNSserver功能(域名解析)
根據biridge
建立一個bridge網路
docker network create -d bridge my_net
-d:後面接的是什麼網絡。
brctl show
docker run -itd --name test3 --network my_net busybox:latest
docker run -itd --name test4 --network my_net busybox:latest性能

進入容器
docker exec -it test3 /bin/sh
docker exec -it test4 /bin/sh
Ip a
Ping test4

PS:自定義網絡優勢,它能夠經過容器名稱通訊

建立一個自定義網絡my_net2:並指定網關和網段.

docker network create -d bridge --subnet 172.20.16.0/24 --gateway 172.20.16.1 my_net2
docker run  -itd --name test5 --network my_net2 --ip 172.20.16.2 busybox:latest
docker run  -itd --name test6 --network my_net2 --ip 172.20.16.3 busybox:latest
docker exec -it test5 /bin/sh
Ping test6

Ps:若是想要給容器指定IP地址,那麼自定義網絡的時候,必須指定網關gate和subnet網段選項

2.自定義一個鏡像,要求基於nginx鏡像,自定義鏡像的主頁內容爲:本身的名稱|
nginx-web

docker pull nginx

cd test1/
配置Dockerfile
vim Dockerfile

FROM nginx
WORKDIR /usr/share/nginx/html/
RUN rm -rf index.html
COPY index.html /usr/share/nginx/html
RUN nginx
docker原生網絡的特色即便用場景,即便用測試

建立完製做鏡像
docker build -t nginx-test .
docker原生網絡的特色即便用場景,即便用測試
建立容器
docker run -itd --name lbs nginx-test nginx -g "daemon off;"
docker exec -it lbs /bin/sh

安裝vim命令(在網上查到的感受有點用)
apt-get install vim 會出現
Reading package lists... Done
        Building dependency tree       
        Reading state information... Done
        E: Unable to locate package

以後在使用
apt-get update
再次使用apt-get install vim命令便可
docker原生網絡的特色即便用場景,即便用測試
index.html:中的名字
docker原生網絡的特色即便用場景,即便用測試

3.建立一個自定義網絡,而且使用上述的鏡像運行一個容器,容器使用這個自定義網絡,切換ip地址是自定義的
建立一個自定義網卡設置網段網關
docker network create -d bridge --subnet 172.20.1.0/24 --gateway 172.20.1.1 LBSnet
docker network ls
docker原生網絡的特色即便用場景,即便用測試
建立好後運行容器
自定義ip地址
docker run -itd --name nginx-test --network LBSnet --ip 172.20.1.10 nginx-test:latest
查看容器
docker inspect nginx-test
docker原生網絡的特色即便用場景,即便用測試

訪問容器IP
docker原生網絡的特色即便用場景,即便用測試

4.將鏡像上傳到私有倉庫
安裝私有倉庫
docker pull registry:2
docker原生網絡的特色即便用場景,即便用測試
運行私有倉庫服務
docker run -itd --name registry --restart=always -p 5000:5000 -v /registry:/var/lib/registry registry:2
docker原生網絡的特色即便用場景,即便用測試
配置文件,並重啓docker服務
vim /usr/lib/systemd/system/docker.service
docker原生網絡的特色即便用場景,即便用測試
systemctl daemon-reload
systemctl restart docker
將nginx-test更名,並上傳到私有倉庫
docker tag nginx-test:latest 192.168.1.1:5000/test
docker原生網絡的特色即便用場景,即便用測試
docker push 192.168.1.1:5000/test:latest
docker原生網絡的特色即便用場景,即便用測試

使用更名的鏡像,建立容器,
docker run -itd --name lbs12 --network LBSnet --ip 172.20.1.100 192.168.1.1:5000/test:latest
訪問ip
docker原生網絡的特色即便用場景,即便用測試

相關文章
相關標籤/搜索