欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決docker容器設(shè)置DNS不生效的問題

 更新時間:2025年01月06日 09:13:32   作者:catoop  
文章主要介紹了如何在Docker中設(shè)置DNS,并通過兩種方式(`docker run`和`docker-compose.yml`)進行了詳細說明,雖然`docker run`方式可以成功設(shè)置DNS,但`docker-compose.yml`方式在某些情況下會導致DNS配置無效,因為容器的`/etc/resolv.conf`文件

docker容器設(shè)置DNS不生效問題

設(shè)定DNS的方法

先來說一下 docker run 和 docker-compose 指定 dns 的方法。

1、docker run 命令 設(shè)置 dns

docker run --dns=8.8.8.8

2、docker-compose.yml 文件中 設(shè)置dns

version: '3.9'
services:

  coredns:
    image: hello:1.0.0
    container_name: hello
    dns: 8.8.8.8

通過以上兩種方式配置 dns 后,你會發(fā)現(xiàn) docker run方式設(shè)定的有效,docker-compose 方式設(shè)定的 dns 無效。

主要表現(xiàn)在容器中 /etc/resolv.conf 中的地址沒有變化,修改文件重啟后仍不生效。

不生效原因分析

容器的 /etc/hosts 、hostname 等文件 都是默認掛載宿主機里的配置的,命令行進入容器后,在容器中使用 mount 命令可以看到。

一般容器中默認的 nameserver 就是 127.0.0.11

解決方案

1、直接使用 volume 設(shè)置重新映射 /etc/resolv.conf 文件到宿主機的位置。既在宿主機上自定義一個文件(或者直接使用宿主機的 /etc/resolv.conf),掛載到容器內(nèi)的 /etc/resolv.conf。

2、在 /etc/docker/daemon.json 中配置所有 docker 容器的缺省 dns(這里配置的 dns 僅對 docker run 默認網(wǎng)絡(luò)啟動的走 docker0 網(wǎng)橋的容器有效)。

3、在 docker-compose 中配置參數(shù) network_mode: bridge 的容器。注意設(shè)置了該參數(shù)的容器不能再用 networks 配置額外的網(wǎng)絡(luò)信息。

官方說明釋義

參考官方文檔說明,意思是如果使用默認的 docker0 網(wǎng)絡(luò)的容器,dns 配置會生效,但是使用自定義網(wǎng)絡(luò)話(docker-compose 默認就創(chuàng)建新的自定義網(wǎng)絡(luò)),就不會用宿主機的 dns文件,從而不能覆蓋 resolv.conf 配置,既不能生效。

而使用 docker run 默認使用的是橋接模式下的 docker0 網(wǎng)橋,所以生效。docker-compose 文件啟動會創(chuàng)建新的網(wǎng)橋,所以不生效。

結(jié)合上述說明,如果想讓 docker-compose.yml 中的容器配置 dns 生效,就需要為容器設(shè)置 network_mode: bridge 后再設(shè)置 dns,這樣對應(yīng)的容器 dns 生效(設(shè)定 network_mode: bridge 的容器可以通過相關(guān)命令查看它走的是 docker0 網(wǎng)橋)。

最后,因為 docker-compose 中 network_mode: bridgenetworks,兩個配置只能二選一,加上在 docker-compose 中為容器設(shè)定固定IP 又需要通過 networks 來配置,所以在 docker-compose 中如果你選擇 network_mode: bridge 就之能放棄為容器設(shè)置固定 IP 的需求。

相關(guān)連接:

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringCloud基于Docker和Docker-Compose的項目部署過程

    SpringCloud基于Docker和Docker-Compose的項目部署過程

    本文介紹了如何卸載舊版本Docker、更新系統(tǒng)、安裝Docker及其依賴,并設(shè)置國內(nèi)鏡像源以加快下載速度,詳細說明了如何安裝Docker Compose、配置鏡像加速器,并展示了如何使用Docker Compose部署SpringCloud項目,提供了更新和重啟容器的方法
    2024-10-10
  • Docker Stack 部署web集群的方法步驟

    Docker Stack 部署web集群的方法步驟

    這篇文章主要介紹了Docker Stack 部署web集群的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • docker部署lnmp-wordpress的實現(xiàn)步驟

    docker部署lnmp-wordpress的實現(xiàn)步驟

    本文主要介紹了docker部署lnmp-wordpress的實現(xiàn)步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • Docker中的容器文件拷貝及目錄掛載方式

    Docker中的容器文件拷貝及目錄掛載方式

    這篇文章主要介紹了Docker中的容器文件拷貝及目錄掛載方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • docker環(huán)境變量配置不生效/ect/profile的解決方法

    docker環(huán)境變量配置不生效/ect/profile的解決方法

    docker在使用過程中,有時候自定義容器實例中的某些配置文件,本文主要介紹了docker環(huán)境變量配置不生效/ect/profile的解決方法,感興趣的可以了解一下
    2023-08-08
  • docker內(nèi)部ping和ip命令的使用方式

    docker內(nèi)部ping和ip命令的使用方式

    這篇文章主要介紹了docker內(nèi)部ping和ip命令的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Docker 下載鏡像慢的問題解決辦法

    Docker 下載鏡像慢的問題解決辦法

    這篇文章主要介紹了Docker 下載鏡像慢的問題解決辦法的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • docker快速部署zabbix的方法

    docker快速部署zabbix的方法

    zabbix標準組件是分布式的,因此部署過程中需要創(chuàng)建多個容器,本文主要介紹了docker快速部署zabbix的方法,具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • 如何優(yōu)化Docker鏡像的大小詳解

    如何優(yōu)化Docker鏡像的大小詳解

    本文詳細介紹了Docker的定義和優(yōu)點,以及如何通過優(yōu)化Docker鏡像來提高其輕量化和便攜性,通過使用輕量化基礎(chǔ)鏡像和多階段構(gòu)建,可以顯著減小Docker鏡像的大小,從而提高部署和運行效率
    2025-03-03
  • Docker安裝Mosquitto的實現(xiàn)示例

    Docker安裝Mosquitto的實現(xiàn)示例

    mosquitto是一個常用的MQTT應(yīng)用服務(wù),本文主要介紹了Docker安裝Mosquitto的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05

最新評論