如何为 Docker 容器添加域名和 IP 地址

💡 原文英文,约600词,阅读约需3分钟。
📝

内容提要

文章介绍了如何使用 dnsmasq 和 /etc/hosts 文件增强 Docker 容器网络功能。提供了两种方法:与 NetworkManager 集成的 dnsmasq 配置和独立的 dnsmasq 配置。步骤包括安装和配置 dnsmasq、配置 Docker 使用 dnsmasq,以及在 /etc/hosts 文件中添加测试域名。

🎯

关键要点

  • 文章介绍了如何使用 dnsmasq 和 /etc/hosts 文件增强 Docker 容器网络功能。
  • 提供了两种方法:与 NetworkManager 集成的 dnsmasq 配置和独立的 dnsmasq 配置。
  • 步骤包括安装和配置 dnsmasq、配置 Docker 使用 dnsmasq,以及在 /etc/hosts 文件中添加测试域名。
  • 安装 dnsmasq 的命令:对于 Debian / Ubuntu 使用 sudo apt install dnsmasq,RHEL / CentOS / Fedora 使用 sudo dnf install dnsmasq。
  • 如果不使用 NetworkManager,需创建 dnsmasq 配置文件并设置监听 Docker 桥接接口。
  • 如果使用 NetworkManager,需在配置文件中添加 dnsmasq,并创建相应的配置文件。
  • 配置 Docker 使用 dnsmasq,需要在 /etc/docker/daemon.json 中指定 DNS 地址。
  • 在 /etc/hosts 文件中添加测试域名,并重启 dnsmasq 服务以获取更新。
  • 通过 Docker 容器测试自定义域名是否配置成功,使用 nslookup 命令进行验证。

延伸问答

如何安装 dnsmasq?

在 Debian / Ubuntu 上使用命令 sudo apt install dnsmasq,RHEL / CentOS / Fedora 上使用 sudo dnf install dnsmasq。

如何配置 Docker 使用 dnsmasq?

在 /etc/docker/daemon.json 中指定 DNS 地址为 Docker 桥接接口的 IP 地址,然后重启 Docker 服务。

如何在 /etc/hosts 文件中添加测试域名?

使用命令 sudo bash -c "echo '192.168.1.12 nonexisting.example.com' >> /etc/hosts" 添加测试域名。

dnsmasq 与 NetworkManager 集成的配置步骤是什么?

在 /etc/NetworkManager/NetworkManager.conf 中添加 dns=dnsmasq,并创建 dnsmasq 配置文件,设置监听 Docker 桥接接口。

如何测试自定义域名是否配置成功?

通过运行命令 docker run --rm --name dns-test busybox nslookup nonexisting.example.com 来测试自定义域名。

dnsmasq 的主要功能是什么?

dnsmasq 用于提供 DNS 服务,增强 Docker 容器的网络功能,支持自定义域名解析。

➡️

继续阅读