推 "dhcp-option DNS <hostname>"

push "dhcp-option DNS <hostname>"

我得到了 raspberry pi 和 运行 docker。

我有一个包含 pi-hole(广告拦截器)的容器,我想将我的 DNS 查询指向它。

所以我得到了一个配置为 :

的 OpenVPN 容器
push "dhcp-option DNS 172.200.0.10"

但要使其正常工作,我必须声明一个网络并在我的 docker-compose 文件中修复一个 IP 地址(在本例中为 172.200.0.10)。

我想做一些更优雅的事情,比如:

push "dhcp-option DNS pihole"

可能吗?

这是我的 docker-compose 文件:

version: "3"
services:
  pihole:
    image: diginc/pi-hole-multiarch:debian_armhf
    container_name: pihole
    ports:
      - "53:53/tcp"
      - "53:53/udp"
      - "80:80/tcp"
    environment:
      ServerIP: ****
      PROXY_LOCATION: pihole
      VIRTUAL_HOST: ****
      VIRTUAL_PORT: ****
      WEBPASSWORD: ****
    extra_hosts:
      - "****:****"
    networks:
      public:
        ipv4_address: 172.100.0.10
      private:
        ipv4_address: 172.200.0.10 # To be set in openvpn.conf as push "dhcp-option DNS 172.200.0.10"
    restart: always
  openvpn:
    image: mjenz/rpi-openvpn
    container_name: openvpn
    ports:
      - "1194:1194/udp"
    cap_add:
      - NET_ADMIN
    links:
      - "pihole:pihole"
    volumes:
      - "/etc/openvpn-data/conf:/etc/openvpn"
    networks:
      public:
        ipv4_address: 172.100.0.11
      private:
        ipv4_address: 172.200.0.11
    restart: always
    networks:
      public:
        ipv4_address: 172.100.0.12
      private:
        ipv4_address: 172.200.0.12
  restart: always
networks:
  public:
    ipam:
      config:
        - subnet: 172.100.0.0/16
  private:
    ipam:
      config:
        - subnet: 172.200.0.0/16

PS:我的 docker 文件中有一个 link pihole 并且 ping pihole 在我的 openVPN 容器中工作

links 是一项遗留功能,将来会被删除。请改用 depends_on

在你的例子中:

version: "3"
services:
  pihole:
    ...
  openvpn:
    depends_on:
    - pihole
    ...

然后,在 openVPN 容器中,您可以使用名称 pihole.

来引用您的 pihole 容器

文档:https://docs.docker.com/compose/compose-file/#depends_on