docker網絡

docker的網絡有四種連接方式

  • 1、bridge:將網絡駕到默認的docker:0橋上,橋再二層轉發給宿主機的物理網卡,通過SNAT與DNAT和外部通信
  • 2、host :將網絡直接駕到宿主機網卡上,直接與外部通信,有風險不推薦使用
    開放式容器
  • 3、none :駕到none上,封閉式容器,不與外部通信
  • 4、聯盟式容器:是指使用某個已存在容器的網絡接口的容器,接口
    被聯盟內的各容器共享使用;因此,聯盟式容器彼此間完全無
    隔離,兩個在同一聯盟內的容器通過loopback通信
    可以使用docker network list查看容器網絡
    注入,在啓動之前就設定好某些屬性,例如:
    docker run --name bbox1 --rm --net bridge -it --hostname bbox1.lvqing.com --dns 223.5.5.5 --add-host node1.lvqing.com:192.168.31.200 busybox
    在啓動容器時指定暴露哪些端口,能自動生成iptables的規則

-p選項的使用格式

-p <containerPort>
	將指定的容器端口映射至主機所有地址的一個動態端口
-p <hostPort>:<containerPort>
	將容器端口<containerPort>映射至指定的主機端口<hostPort>
-p <ip>::<containerPort>
	將指定的容器端口<containerPort>映射至主機指定<ip>的動態端口
-p <ip>:<hostPort>:<containerPort>
	將指定的容器端口<containerPort>映射至主機指定<ip>的端口<hostPort>
“動態端口”指隨機端口,具體的映射結果可使用docker port命令
查看

實驗:busybox暴露80端口啓動httpd服務

1、創建容器
 docker run --name bbox2 --rm --net bridge -it  -p 80 busybox
2、 在busybox種啓動httpd服務
 httpd -h /data/html
3、 查看在宿主機上映射的端口號
 docker port bbox2
4、 訪問測試
 curl http://192.168.31.200:32768
<h1>bbox1 server</h1>

還可以自己創建虛擬網橋

docker network create -d bridge --subnet=172.31.0.0/16 --ip-range=172.31.0.0/16 --gateway=172.31.0.1 mybr0

docker run --name bbox1 --rm -it --net mybr0 busybox

還可以給容器添加或者刪除網卡

docker network connect|disconnect bridge bbox1 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章