繁体   English   中英

在 docker-compose.yml 中设置网桥名称

[英]Set bridge name in docker-compose.yml

我正在运行启用了“userns-remap”的 dockerized GitLab 实例,我想在主机上使用共享的 PostgreSQL。 但是,当我启动 docker-compose 时创建的桥接器在每次运行时都会获得一个新的随机名称“br-xxxxxxxxxxxx”。

这通常不是问题,但主机上的 Vuurmuur 防火墙默认会阻止从容器到主机的所有流量,我需要网桥名称才能在 Vuurmuur 上设置允许规则。

我发现了许多相关主题,例如com.docker.network.bridge.name ,但我无法将它们全部混淆。 到目前为止,我试图找到一种方法来确保每次启动容器时,网桥都会获得相同的名称和分配的相同 IP/掩码。 这在docker-compose.yml中是否可能,或者这种方法完全错误?

到目前为止,这是不起眼的docker-compose.yml

version: '3.8'
services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: 'gitlab.example.com'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'https://gitlab.example.com'
        gitlab_rails['db_adapter'] = 'postgresql'
        gitlab_rails['db_host'] = '172.18.0.1'
        (...)
    ports:
      - '8080:80'
    volumes:
      (...)

感谢您的任何提示!

该选项是网络driver_opts配置的一部分

$ cat docker-compose.yaml 
---
services:
  sleep:
    image: ubuntu
    command: [sh, -c, "sleep infity"]
    networks:
      demo:
networks:
  demo:
    driver_opts:
      com.docker.network.bridge.name: br-demo
$ docker-compose up -d
Creating network "tmp_demo" with the default driver
Creating tmp_sleep_1 ... done
$ brctl show
bridge name     bridge id               STP enabled     interfaces
br-demo         8000.02423d13fd2a       no
docker0         8000.02428a615bfa       no

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM