按“dhcp-option DNS <hostname>”

时间:2018-03-26 06:06:15

标签: docker docker-compose openvpn

我得到了一个覆盆子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文件中有一个pihole的链接,并且在我的openVPN容器中ping pihole工作

1 个答案:

答案 0 :(得分:2)

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

在你的例子中:

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

然后,在openVPN容器中,您可以使用名称pihole来引用您的pihole容器。

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