docker高階應用之智慧型新增與修改防火牆規則

2021-09-22 05:31:47 字數 1831 閱讀 1375

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是...