1、使用預設docker0橋接方式;
2、修改防火牆規則的話,使用手動修改配置;
3、並且修改時候還得計算**埠,防止重複埠使使用者登陸錯誤容器;
4、並當容器意外重啟,內網ip變化後還得修改規則
那麼你可以看看本文了,對你這些痛處都有解決方法。
目前docker容器設定訪問規則的話,就2個方法
1、在docker容器建立的時候,使用-p來設定
2、在容器執行中,獲取容器的ip,然後在宿主機的iptables力通過nat鏈做dnat設定
我之前一直使用第2個方法,但隨著我docker專案的增加(目前我這裡研發使用docker的容器做測試機),防火牆的訪問規則設定起來十分麻煩,並且之前規劃沒有弄好,容器的網路還是預設的docker0橋接方式,這樣容器一掛或者異常問題、docker daemon重啟,都會導致容器的ip變更,變更後就得修改防火牆策略,十分的麻煩。
為了解決這個問題,我開發了2個程式,1個是持久化固定容器ip(位址另外乙個是智慧型防火牆,下面是關於智慧型防火牆功能的介紹。
一、介紹
1、編寫語言
python
2、執行環境
容器需要使用我之前寫的持久化固定ip方式來建立
需要額外安裝的python模組
etcd
docker
nmap
3、基本宿主機防火牆(包含filter鏈與nat鏈)
預設在/root/firewall裡有個基礎的宿主機防火牆,裡面包含filter鏈與nat鏈,我的防火牆程式先獲取這個檔案,然後在從etcd裡獲取各容器的防火牆結合後是新的規則,如下面是我的
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
[root@docker-test3 firewall]
# cat /root/firewall/iptables_base.txt
*filter
:input drop [0:0]
:forward accept [0:0]
:output accept [1:83]
-a input -m state --state related,established -j accept
-a input -p icmp -j accept
-a input -i lo -j accept
-a input -i em1 -j accept
-a input -i ovs1 -j accept
#forllow is room network
-a input -s 117.121.x.0
/24
docker高階應用之刪除私有庫映象
目前我這裡docker映象都存放到私有庫里,由於docker客戶端基本都是1.4 1.5,所以使用registry 1.0 下面介紹如何安裝1.0的registry 安裝很簡單,就一條命令 docker run restart always d p 5000 5000 name docker reg...
docker高階應用之刪除私有庫映象
目前我這裡docker映象都存放到私有庫里,由於docker客戶端基本都是1.4 1.5,所以使用registry 1.0 下面介紹如何安裝1.0的registry 安裝很簡單,就一條命令 docker run restart always d p 5000 5000 name docker reg...
Docker應用之倉庫
倉庫是存放映象的地方 註冊伺服器是管理倉庫的具體伺服器,每個伺服器上可以有多個倉庫,每個倉庫也可以有多個映象 如 dl.dockerpool.com ubuntu dl.dockerpool.com就是註冊伺服器位址,ubuntu是倉庫名 一 docker hub公共映象市場 docker hub是...