Docker设置DNS

Docker DNS配置优化

前言

之前将 Docker 中的路由转发到了宿主机,相当于每个容器都变成了一个小型服务器。

然而各个服务之间都会可能会通过自定义域名进行交互,这个时候,我们需要在容器中的 etc/hosts 中写入所依赖的服务IP及其域名。

为了能够更好的解决这个问题,再次之前自建了 DNS 服务,这个时候,只需要指定一下 DockerDNS 配置即可。

环境

  • Docker
  • Ubuntu20.04

准备

需要有自建的 DNS 服务,可以参考 Ubuntu使用dnsmasq自建dns服务

配置

Linux

这里以 Ubuntu20.04 为例

编辑 Dockerdaemon.json

sudo vim /etc/docker/daemon.json

添加如下配置:

{
    "dns": ["自建DNS服务的IP", "8.8.8.8"]
}

重载配置及重新启动

sudo systemctl daemon-reload
sudo service docker restart

Windows

docker配置DNS

点击下方 Apply & Restart

Mac

参考 Linux 和 Windows 配置。

最后

再也不用去指定一堆 hosts 了,服务之间可以互相调用了。

<think>好的,用户想了解如何修改DockerDNS设置。首先,我需要回忆一下Docker配置DNS的不同方法。记得可以通过daemon.json文件来全局配置DNS,这样对所有容器都生效。另外,也可以在运行单个容器通过参数指定DNS服务器。还有,用户可能需要为Docker Compose配置DNS,这需要在docker-compose.yml文件中设置。 接下来,我要确保步骤正确。比如,修改daemon.json,需要指定dns键,并列出DNS服务器地址。同,重启Docker服务使配置生效。对于单个容器,使用--dns参数来指定。在Docker Compose中,则是使用dns配置项。 还要考虑用户可能遇到的问题,比如配置文件格式错误,或者DNS服务器不可达。需要提醒用户检查JSON语法,以及确认DNS服务器的可用性。另外,不同操作系统的文件路径可能不同,比如Linux和Windows的daemon.json位置不一样,这点需要说明清楚。 用户提供的引用中有提到docker-compose的使用,比如引用[1]中的命令,可能用户已经熟悉Compose,所以应该包括Compose的配置方法。另外,引用[2]中创建文件夹的步骤,可能用户也会在配置DNS遇到目录相关问题,但这里可能不直接相关,暂不需要涉及。 还要注意回答的结构,按照全局配置、单容器配置、Compose配置分点说明,确保清晰。最后加上注意事项,帮助用户避免常见错误。这样用户可以根据自己的需求选择合适的方法,并顺利应用。</think>### 如何修改DockerDNS设置? #### 方法1:全局修改DNS配置(适用于所有容器) 1. **编辑Docker守护进程配置文件** 打开或创建配置文件`/etc/docker/daemon.json`(Linux)或通过Docker Desktop的Settings修改(Windows/macOS),添加以下内容: ```json { "dns": ["8.8.8.8", "8.8.4.4"] } ``` 此处`8.8.8.8`和`8.8.4.4`是Google的公共DNS服务器,可替换为其他DNS地址[^3]。 2. **重启Docker服务** ```bash sudo systemctl restart docker # Linux ``` Windows/macOS可通过Docker Desktop界面重启。 #### 方法2:单容器运行指定DNS 在启动容器通过`--dns`参数指定: ```bash sudo docker run --dns=8.8.8.8 --dns=1.1.1.1 my_image ``` 此命令会覆盖全局配置,仅对当前容器生效[^3]。 #### 方法3:Docker Compose配置DNS 在`docker-compose.yml`文件中添加`dns`字段: ```yaml services: my_service: image: my_image dns: - 8.8.8.8 - 1.1.1.1 ``` 通过`docker compose -f your-compose-file.yml up -d`启动服务[^1]。 #### 验证DNS配置 进入容器后执行`cat /etc/resolv.conf`,检查是否包含配置的DNS地址。 #### 注意事项 - 若配置文件格式错误,Docker可能无法启动,需检查JSON语法。 - 使用自定义网络DNS配置可能需额外设置。 - 企业内网环境可能需要特定DNS服务器。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值