在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ 容器訪問控制
利用數(shù)據(jù)卷容器來備份、恢復(fù)、遷移數(shù)據(jù)卷
Docker 網(wǎng)絡(luò)實(shí)現(xiàn)
實(shí)戰(zhàn) Django
YAML 模板文件
名字空間
控制組
編輯網(wǎng)絡(luò)配置文件
列出
進(jìn)入容器
Compose 命令說明
創(chuàng)建 Tomcat/Weblogic 集群
守護(hù)態(tài)運(yùn)行
快速配置指南
其它安全特性
示例:創(chuàng)建一個(gè)點(diǎn)到點(diǎn)連接
CentOS 系列安裝 Docker
數(shù)據(jù)卷容器
鏡像
指令
創(chuàng)建鏡像
Docker 容器
創(chuàng)建鏡像
常用倉庫
總結(jié)
什么是 Docker
存出和載入鏡像
使用
獲取鏡像
容器互聯(lián)
為什么要使用 Docker?
使用 Wordpress 入門 Fig
啟動(dòng)
容器訪問控制
私有倉庫
使用
基本架構(gòu)
自定義網(wǎng)橋
環(huán)境變量參考
實(shí)戰(zhàn) Rail
服務(wù)端的防護(hù)
刪除
鏡像的實(shí)現(xiàn)原理
多臺(tái)物理主機(jī)之間的容器互聯(lián)
Docker 倉庫
簡介
數(shù)據(jù)卷
命令參考
使用 Supervisor 來管理進(jìn)程
移除
基本結(jié)構(gòu)
命令查詢
終止容器
聯(lián)合文件系統(tǒng)
安裝
簡介
配置 DNS
內(nèi)核能力機(jī)制
導(dǎo)出和導(dǎo)入容器
配置 docker0 網(wǎng)橋
倉庫配置文件
內(nèi)核名字空間
標(biāo)準(zhǔn)化開發(fā)測試和生產(chǎn)環(huán)境
外部訪問容器
fig.yml 參考
Ubuntu 系列安裝 Docker
有用資源
安裝
端口映射實(shí)現(xiàn)
安裝 Fig
工具和示例
簡介
控制組
容器格式
Docker Hub

容器訪問控制

容器的訪問控制,主要通過 Linux 上的 iptables 防火墻來進(jìn)行管理和實(shí)現(xiàn)。iptables 是 Linux 上默認(rèn)的防火墻軟件,在大部分發(fā)行版中都自帶。

容器訪問外部網(wǎng)絡(luò)

容器要想訪問外部網(wǎng)絡(luò),需要本地系統(tǒng)的轉(zhuǎn)發(fā)支持。在Linux 系統(tǒng)中,檢查轉(zhuǎn)發(fā)是否打開。

$sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1

如果為 0,說明沒有開啟轉(zhuǎn)發(fā),則需要手動(dòng)打開。

$sysctl -w net.ipv4.ip_forward=1

如果在啟動(dòng) Docker 服務(wù)的時(shí)候設(shè)定 --ip-forward=true, Docker 就會(huì)自動(dòng)設(shè)定系統(tǒng)的 ip_forward 參數(shù)為 1。

容器之間訪問

容器之間相互訪問,需要兩方面的支持。

  • 容器的網(wǎng)絡(luò)拓?fù)涫欠褚呀?jīng)互聯(lián)。默認(rèn)情況下,所有容器都會(huì)被連接到 docker0 網(wǎng)橋上。
  • 本地系統(tǒng)的防火墻軟件 -- iptables 是否允許通過。

訪問所有端口

當(dāng)啟動(dòng) Docker 服務(wù)時(shí)候,默認(rèn)會(huì)添加一條轉(zhuǎn)發(fā)策略到 iptables 的 FORWARD 鏈上。策略為通過(ACCEPT)還是禁止(DROP)取決于配置--icc=true(缺省值)還是 --icc=false。當(dāng)然,如果手動(dòng)指定 --iptables=false 則不會(huì)添加 iptables 規(guī)則。

可見,默認(rèn)情況下,不同容器之間是允許網(wǎng)絡(luò)互通的。如果為了安全考慮,可以在 /etc/default/docker 文件中配置 DOCKER_OPTS=--icc=false 來禁止它。

訪問指定端口

在通過 -icc=false 關(guān)閉網(wǎng)絡(luò)訪問后,還可以通過 --link=CONTAINER_NAME:ALIAS 選項(xiàng)來訪問容器的開放端口。

例如,在啟動(dòng) Docker 服務(wù)時(shí),可以同時(shí)使用 icc=false --iptables=true 參數(shù)來關(guān)閉允許相互的網(wǎng)絡(luò)訪問,并讓 Docker 可以修改系統(tǒng)中的 iptables 規(guī)則。

此時(shí),系統(tǒng)中的 iptables 規(guī)則可能是類似

$ sudo iptables -nL
...
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
DROP       all  --  0.0.0.0/0            0.0.0.0/0
...

之后,啟動(dòng)容器(docker run)時(shí)使用 --link=CONTAINER_NAME:ALIAS 選項(xiàng)。Docker 會(huì)在 iptable 中為 兩個(gè)容器分別添加一條 ACCEPT 規(guī)則,允許相互訪問開放的端口(取決于 Dockerfile 中的 EXPOSE 行)。

當(dāng)添加了 --link=CONTAINER_NAME:ALIAS 選項(xiàng)后,添加了 iptables 規(guī)則。

$ sudo iptables -nL
...
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  172.17.0.2           172.17.0.3           tcp spt:80
ACCEPT     tcp  --  172.17.0.3           172.17.0.2           tcp dpt:80
DROP       all  --  0.0.0.0/0            0.0.0.0/0

注意:--link=CONTAINER_NAME:ALIAS 中的 CONTAINER_NAME 目前必須是 Docker 分配的名字,或使用 --name 參數(shù)指定的名字。主機(jī)名則不會(huì)被識(shí)別。