1、Docker容器的網絡基礎
(1)使用 ifconfig 查看系統的網絡配置,dokcer的守護進程就是通過docker0給docker容器提供網絡服務的,這裏的 docker0 就是linux的虛擬網橋
網橋屬於OSI七層模型的數據鏈路層
Linux虛擬網橋的特點:可以設置IP地址,相當於擁有一個隱藏的虛擬網卡
docker0的地址默認劃分: IP:172.17.0.1; 子網掩碼:255.255.0.0; MAC: 02:42:78:DC:00:00到02:42:78:DC:ff:ff
總共提供了65534個地址
(2)docker0
(3)如何修改 docker0 地址?
sudo ifconfig docker0 192.168.200.1 netmask 255.255.255.0
(4)自定義虛擬網橋
添加虛擬網橋 sudo brctl addbr br0
sudo ifconfig br0 192.168.100.1 netmask 255.255.255.0
更改dokcer守護進程的啓動配置: /etc/default/docker 中添加DOCKER_OPS值 -b=br0
2、Docker容器的互聯
(1)環境準備: 製作一個用於測試的Docker鏡像Dockerfile:
FROM ubuntu:14.04
RUN apt-get install -y ping
RUN apt-get update
RUN apt-get install -y nginx
RUN apt-get install -y curl
EXPOSE 80
CMD /bin/bash
(2)允許所有容器互聯 --icc=true(默認允許容器間的連接)
--link選項:docker run --link=[CONTAINER_NAME]:[ALIAS] [IMAGE] [COMMOND] 映射容器的IP地址
演示:運行兩個容器 docker run -it --name cct01 yw_sir/cct
docker run -it --name cct02 yw_sir/cct
查看使用--link後容器內的環境變量和hosts文件的變化
(3)拒絕容器間互聯
修改Docker守護進程的啓動選項 --icc=false
(4)允許特定容器間的連接
修改Docker守護進程的啓動選項
--icc=false (阻斷所有容器的訪問,僅僅允許使用--link設置的容器)
--iptables=true (控制網絡訪問)
--link
3、Docker容器與外部網絡的連接
(1)ip_forwark 默認--ip_forwark=true,允許流量轉發;查看
(2)iptables
是與Linux內核集成的包過濾防火牆系統,幾乎所有的linux發行版本都包含iptables的功能
表(table):在上圖中nat、mangle、raw等命名的表
鏈(chain):數據處理中不同環節或不同階段
規則(rule):每個鏈下的操作
ACCEPT 、REJECT、DROP
如:filter表中包含的鏈:INPUT、FORWARD、OUTPUT
(3)允許端口映射訪問
(4)限制IP訪問容器