docker container DNS如何配置

2023-04-07 17:17:00 docker 配置 Container

Docker containers默认使用的是Google的公共DNS,但是有时候我们希望能够使用自己的DNS服务器。这里介绍一种简单的方法来配置Docker containers的DNS。

首先,我们需要在宿主机上配置DNS服务器。这里我们使用的是bind9,配置文件如下:

```

options {

directory "/var/cache/bind";

dnssec-validation auto;

auth-nxdomain no; # conform to RFC1035

listen-on-v6 { any; };

};

zone "." {

type hint;

file "/etc/bind/db.root";

};

zone "localhost" {

type master;

file "/etc/bind/db.local";

};

zone "0.0.127.in-addr.arpa" {

type master;

file "/etc/bind/db.127";

};

zone "example.com" {

type master;

file "/etc/bind/db.example.com";

};

```

其中db.example.com文件内容如下:

```

$TTL 604800

@ IN SOA ns1.example.com. root.example.com. (

2 ; Serial

604800 ; Refresh

86400 ; Retry

2419200 ; Expire

604800 ) ; Negative Cache TTL

;

@ IN NS ns1.example.com.

@ IN A 192.168.1.100

ns1 IN A 192.168.1.100

www IN CNAME example.com.

```

然后我们需要在Docker容器中使用这个DNS服务器。这里我们使用的是Ubuntu的Docker容器,配置文件如下:

```

FROM ubuntu

RUN echo "nameserver 192.168.1.100" >> /etc/resolv.conf

CMD ["/bin/bash"]

```

这样我们就在Docker容器中配置了DNS服务器。

相关文章