Docker 上 bind9 的权威配置

Docker 上 bind9 的权威配置

https://hub.docker.com/r/internetsystemsconsortium/bind9

当本文档的作者说,

您需要正确挂载以下卷:
/etc/bind - 用于配置,您的 named.conf 位于此处
/var/cache/bind - 工作目录,例如选项 { 目录“/var/cache/bind”; };
/var/lib/bind - 这通常是放置辅助区域的地方
/var/log - 用于日志文件

它们是否意味着我们应该在 Dockerfile 所在的目录中创建一个目录树?

在标题“权威 DNS 服务器”下,他们有一些配置文件语法。我不知道它是用于 named.conf.local 还是 named.conf.options 文件。你猜是什么?

谢谢。

问题是,他没有给出任何关于如何或何时安装这些卷的提示。我们可以使用 Dockerfile 指令来完成此操作吗?还是必须在创建容器时完成此操作?

docker run -idt -v /home/homie/bind9-with-volumes/config_files:/var/lib/bind 

是其中一种方法。这种方法对我来说很有效。

答案1

它们是否意味着我们应该在 Dockerfile 所在的目录中创建一个目录树?

我认为他们所说的只是您需要为每个路径声明一个 docker --volume(或使用或类似情况下的等效配置),这样当您将容器升级到新映像时,配置和数据文件会保留。 一种选择确实是将这些卷映射到主机目录,但您可以自行选择将这些目录放在何处。docker compose

我不知道它是用于 named.conf.local 还是 named.conf.options 文件。您猜是哪个?

看起来它只是一个例子named.conf。BIND本身并不知道/
文件,但它们在默认的 Debian/Ubuntu BIND 包配置中使用(由其文件中的语句引用)。named.conf.localnamed.conf.optionsincludenamed.conf

答案2

我终于为我的家庭网络找到了权威服务器,并且转发功能也正常工作了!我唯一不明白的是,bind 如何在我没有指定路径的情况下找到区域文件?Dockerfile 内容:

FROM internetsystemsconsortium/bind9:9.18
# Install required tools and dependencies
RUN apt update && apt install -y \  
        bind9-doc \  
        dnsutils \  
        geoip-bin \  
        mariadb-server \  
        net-tools

COPY configuration/named.conf /var/lib/bind/
COPY configuration/wedapipo.yo.zone /var/lib/bind/
COPY configuration/10.168.192.in-addr.arpa /var/lib/bind/
COPY configuration/named.conf.options /var/lib/bind/
EXPOSE 53/tcp
EXPOSE 53/udp
EXPOSE 953/tcp

# Start the Name Service
CMD ["/usr/sbin/named", "-g", "-c", "/var/lib/bind/named.conf", "-u", "bind"]

命名的.conf:

include "/etc/bind/named.conf.options";
zone "wedapipo.yo" {
    type primary;
    file "/var/lib/bind/wedapipo.yo";
    notify explicit;
};
zone "10.168.192.in-addr.arpa" {
    type master;
    file "/var/lib/bind/10.168.192.in-addr.arpa";
    notify explicit;
};

命名的.conf.选项

options {
        directory "/var/cache/bind";
        listen-on { 192.168.10.2; };
        listen-on-v6 { ::1; };
        allow-transfer { none; };
        allow-update { none; };
        recursion yes;
        allow-transfer { none; };      
        forwarders {
          8.8.8.8;
          8.8.4.4;
        };
};

相关内容