Docker网络模式与资源控制管理
網絡模式與資源控制管理
- docker的四種網絡
- docker自定義網絡
- Docker資源控制(cpu、內存、IO資源控制)
docker的四種網絡
1、host
在容器內部創建的兩個容器A,B,通過docker 0(相當于小型的局域網,為內部容器的網關)進行內部通信;與外部通信地址映射Nat模式物理網卡ens33
如果兩個內部容器的服務不同,但端口一樣,進行外部通信時,進行端口映射成不同的端口進行通信
2、container
創建的容器不會創建自己的網卡、設置IP等,而是和一個指定地容器共享IP、端口范圍
這個模式指定新創建的容器和已經存在的一個容器共享一network namespace,而不是和宿主機共享,新創建的容器不會創建自己的網卡,配置自己的IP,而是和一個指定地容器共享IP、端口范圍等。同樣,兩個容器除了網絡方面,其他的如文件系統、進程列表還是隔離的。兩個容器的進程可以通過loo網卡設備通信
3、None
該模式關閉了容器的網絡功能
這種網絡模式下容器只有lo回環網口,沒有其他的網卡。none 模式可以在容器創建時通過-network=none參數指定
這種類型的網絡無法聯網,但是封閉的網絡能很好的保證容器的安全性,提高了安全性。
4、Bridge
此模式會為每一個容器分配、設置IP等,并將容器連接到一個docker虛擬網橋,通過docker0網橋及iptables的nat表配置與宿主機通信
當Docker進程啟動時,會在主機上創建一個名為docker0的虛擬網橋,此主機上啟動的Docker容器會連接到這個虛擬網橋上。虛擬網橋的工作方式和物理交換機類似,這樣主機上的所有容器就通過交換機連在了一個二層網絡中
從docker0子網中分配一個IP給容器使用,并設置docker0的IP地址為容器的默認網關。在主機上創建一對虛擬網卡veth pair設備,Docker將veth pair設備的一端掛載在新創建的容器中,并命名為ethO (容器的網卡),另一端放在主機中,以vethxxx這樣類似的名字命名,并將這個網絡設備加入到docker0網橋中。可以通過brctl show命令查看。
docker自定義網絡
查看網絡列表
根據鏡像創建容器并指定ip地址
會報錯:來自守護程序的錯誤響應,僅在用戶定義的網絡上支持用戶指定的IP地址
docker run -itd --name test1 --network bridge --ip 172.17.0.10 centos:7 /bin/bash
根據鏡像創建容器不指定ip地址
會報錯:原因已經之前指定IP地址了
查看已運行容器狀態
自定義網絡固定IP
docker network create --subnet=172.18.0.0/16 mysub定義分配地址
docker run -itd --name test3 --net mysub --ip 172.18.0.100 centos:7 /bin/bash
查看容器網絡地址
測試網關
測試另一個網橋網關
Docker資源控制(cpu、內存、IO資源控制)
07年谷歌,可以控制資源分配通過操作系統內核,控制應用程序使用內存資源、 cpu資源、 文件系統資源等等 cgroup是一種資源控制手段 每個容器相當于一個進程CPU使用率控制
cpu周期: 1s為一個周期的定律,參數值一般為100000 (CPU衡量單位是秒) 假如需要給此容器分配cpu使用率的20%,則參數需要設置為20000,相當于每個周期分配給這個容器0.2s cpu在一個時刻,只能給一個進程占用cat /sys/fs/cgroup/qpu/docker/容器ID/qpu.cfs_ quota us
動態查看cpu使用率
top
docker stats
CPU 20%的限定
方式一 在創建容器運行進行資源限制
創建容器
計算圓周率
然后再開個窗口top查看
方式二 對已經存在且在運行時狀態的容器進行設置
總結
以上是生活随笔為你收集整理的Docker网络模式与资源控制管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Vue动画出现和隐藏
- 下一篇: 通过Python终端输入命令对NAO机器