對于使用 Docker 構建應用的開發人員來說,理解和配置 Docker 的 DNS 配置至關重要。在 Docker 中,DNS 配置是用于解決容器之間通信的一個關鍵部分。本文將向您介紹如何正確配置 Docker 的 DNS 服務器,使您的應用程序能夠正常工作。
Docker 提供了兩個主要的 DNS 配置選項,分別是容器內部 DNS 和 Docker Daemon 的 DNS 配置。容器內部 DNS 配置用于使容器能夠通過 DNS 解析查詢其他容器的 IP 地址。而 Docker Daemon 的 DNS 配置用于 Docker 系統內所有容器與外部互聯網通信時,通過 DNS 解析獲取域名對應的 IP 地址。
# 配置容器內部 DNS docker run --dns 8.8.8.8 --dns 8.8.4.4 myapp # 配置 Docker Daemon DNS vim /etc/docker/daemon.json { "dns": ["8.8.8.8", "8.8.4.4"] } systemctl restart docker
在這里,我們可以看到在容器啟動時,可以使用 --dns 標志來直接指定每個容器的 DNS 服務器。這是非常有用的,特別是在企業中有自己專門的 DNS 服務器。另一個更好的方法是配置 Docker Daemon 的 DNS 服務器。這將需要修改 daemon.json 文件并重新啟動 Docker 服務。您可以在多行中指定多個 DNS 服務器,如上所示。
當然,為了保持 Docker 中 DNS 的健壯性,我們建議使用多個 DNS 服務器。在這種情況下,如果一個 DNS 服務器出現問題,Docker 將自動使用下一個 DNS 服務器,避免應用程序中斷。