docker-compose up使用自定義的網段的兩種方式(從其根源指定)

問題描述

        仍是那個研究安全大業的同事,在部署他的祕密武器,是用docker-compose部署的,有差很少20多個docker-compose.yml文件,而後因爲 docker-compose.yml中建立自定義網絡的時候,默認的網段爲172.*.*.*;致使了和咱們本身的跳板機網段衝突,只有部署完他的祕密武器,經過跳板機就經過內網登不上去了;那麼有沒有一種方法可使得docker-compose up建立新的網橋的時候不是使用默認的172網段的,而是使用咱們自定義的網段呢;在 上一篇博文中修改/etc/docker/daemon.json的方法只是修改docker0,而我docker-compose每次建立新的網橋的時候,仍是使用默認的172.*.*.*;
 

具體表現

當docker-compose.yml的配置文件爲:
version: '2.3'

networks:
  cow-cow5:
services:
  ......
  cow:
    networks:
     - cow-cow5

 

當配置文件爲上面的時候,docker-compose up的時候,會自動建立名爲filename-cow-cow5的網橋,而且這個 filename-cow-cow5網橋的子網和網段默認爲172.17.*.*
 
 
 
 
當我想要docker-compose使用我指定的子網和網關的話,有什麼方法呢?
 
 

方法一

 
在docker-compose.yml配置文件中明確的指定subnet和gateway
 
version: '2.3'

networks:
  cow-cow5:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 10.88.12.0/24
        gateway: 10.88.12.1
services:

  cowrie:
    ......
    
    networks:
     - cow-cow

 

 
使用上面這個配置以後,當docker-compose up的時候, 會建立名爲filename-cow-cow5的網橋,而且這個 filename-cow-cow5網橋的子網和網段是咱們設置的這個 10.88.12.*;那麼鏈接該網絡的容器的IP也是10.88.12.*段的;達到了咱們的需求
 
 

方法二

 
可是當使用docker-compose部署大型項目的時候,幾十個docker-compose.yml文件,那麼就得一個一個改,做爲勵志成爲運維大佬的咱們來講不該該一個一個去改,得想辦法,有沒有一種辦法:只需修改一個地方,而後docker-compose up建立新網橋的時候就會使用咱們設置的那個網段和子網;像修改docker0的網段同樣,修改/etc/docker/daemon.json配置文件,docker0的網段就會變爲在daemon.json裏設置的這個;有沒有相似於只要修改一個配置文件,docker-compose每次建立新的網橋的時候都會按照配置文件裏的來
 
找了好久,也在一些羣裏問了,可是基本上都是瞎扯的羣,趕忙退羣的好;仍是本身動手,豐衣足食;終於在如下兩篇博客中找到了辦法:
 
找到了就得測試行不行,實踐是檢驗真理的惟一標準,蒽~~~(動手吧)
 

1)版本必須是18.09.1html

docker-ce-cli-18.09.1-3.el7.x86_64
docker-ce-18.09.1-3.el7.x86_64

  

2)在/etc/docker/daemon.json中添加linux

{
  "debug" : true,
  "default-address-pools" : [
    {
      "base" : "12.11.0.0/16",
      "size" : 24
    }
  ]
}

  

三、重啓docker
systemctl restart docker

 

四、經測試結果生效,得出如下結論git

docker0的網段變成了在/etc/docker/daemon.json設置的這個,docker-compose up時每次建立網絡的時候也會使用在/etc/docker/daemon.json指定的這個網段
 
 
 

安裝腳本:github

https://github.com/Lemon-le/Shell-Script/blob/master/install_docker_v18-09-1.sh  (docker)      docker

https://github.com/Lemon-le/Shell-Script/blob/master/install_docker_compose.sh    (docker-compose)json

                         

官網安裝手冊:centos

https://docs.docker.com/install/linux/docker-ce/centos/   (docker)安全

https://docs.docker.com/compose/install/    (docker-compose)網絡

相關文章
相關標籤/搜索