docker--網絡和特權模式


前戲

查看網絡模式:

docker network ls

默認的三種網絡模式:

  • bridge:橋接模式
  • host:主機模式
  • none:無網絡模式

bridge橋接模式

橋接模式是docker 的默認網絡設置,當Docker服務啟動時,會在主機上創建一個名為docker0的虛擬網橋,並選擇一個和宿主機不同的IP地址和子網分配給docker0網橋

當我們啟動一個容器時,會橋接到docker0網卡上,在通過Nat技術就實現了外網訪問docker容

docker0 是啟動docker服務時分配的網橋,77和83是啟動一個容器時分配的網橋(bridge模式時才會有)

host模式

host 模式:該模式下容器是不會擁有自己的ip地址,而是使用宿主機的ip地址和端口

host模式是使用的宿主機的ip和端口,不會生成一個網卡橋接到docker0模式。

拉取nginx鏡像

docker pull nginx

啟動nginx容器,--net=host 指明網絡模式為host,如果不指明,默認為bridge

docker run -d --net=host nginx

防火牆放開80端口:

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

啟動容器時沒有指定端口號,我們直接訪問宿主機的80端口是可以訪問到nginx的

host的缺點就是只能啟動一個相同的服務,比如nginx鏡像的端口都是80,你在宿主機上啟動一個就占用了宿主機的80端口,在啟動一個nginx就會報錯

none模式

none模式:關閉模式

無法連外網

比較少用,了解有這種網絡模式即可

特權模式

也比較少用,了解即可

啟動一個普通的容器

docker run -itd --name mycentos centos:7 /bin/bash

安裝網絡工具:

yum -y install net-tools

執行route -n 查看網關

刪除網關

route del default gw 172.17.0.1

這樣會提示權限

啟動擁有特權模式的容器:只需要在啟動容器的時候加上--privileged=true就可以了

docker run -itd --privileged=true --name mycentos1 centos:7 /bin/bash


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM