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

容器訪問外部網絡
容器要想訪問外部網絡,需要本地系統的轉發(fā)支持。在Linux 系統中,檢查轉發(fā)是否打開。
$sysctl net.ipv4.ip_forward
net.ipv4.ip_forward = 1
如果為 0,說明沒有開啟轉發(fā),則需要手動打開。
$sysctl -w net.ipv4.ip_forward=1
如果在啟動 Docker 服務的時候設定 --ip-forward=true, Docker 就會自動設定系統的 ip_forward 參數為 1。
容器之間訪問
容器之間相互訪問,需要兩方面的支持。
容器的網絡拓撲是否已經互聯。默認情況下,所有容器都會被連接到 docker0 網橋上。
本地系統的防火墻軟件 — iptables 是否允許通過。
訪問所有端口
當啟動 Docker 服務時候,默認會添加一條轉發(fā)策略到 iptables 的 FORWARD 鏈上。策略為通過(ACCEPT)還是禁止(DROP)取決于配置--icc=true(缺省值)還是 --icc=false。當然,如果手動指定 --iptables=false 則不會添加 iptables 規(guī)則。
可見,默認情況下,不同容器之間是允許網絡互通的。如果為了安全考慮,可以在 /etc/default/docker 文件中配置 DOCKER_OPTS=--icc=false 來禁止它。
訪問指定端口
在通過 -icc=false 關閉網絡訪問后,還可以通過 --link=CONTAINER_NAME:ALIAS 選項來訪問容器的開放端口。
例如,在啟動 Docker 服務時,可以同時使用 icc=false --iptables=true 參數來關閉允許相互的網絡訪問,并讓Docker 可以修改系統中的 iptables 規(guī)則。
之后,啟動容器(docker run)時使用 --link=CONTAINER_NAME:ALIAS 選項,Docker 會在 iptable 中為 兩個容器分別添加一條 ACCEPT 規(guī)則,允許相互訪問開放的端口(取決于 Dockerfile 中的 EXPOSE 行)。
本文題目:云計算核心技術Docker教程:容器訪問控制
本文來源:http://chinadenli.net/article8/cgpoop.html
成都網站建設公司_創(chuàng)新互聯,為您提供靜態(tài)網站、網站維護、企業(yè)網站制作、做網站、商城網站、網站設計
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯