中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Docker中怎么對hosts進行修改

發布時間:2021-07-27 17:18:42 來源:億速云 閱讀:247 作者:Leah 欄目:大數據

本篇文章為大家展示了Docker中怎么對hosts進行修改,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Docker修改hosts?這還不簡單,打開vim直接敲就完事兒了!然而事與愿違,事情沒有我們想的那么簡單。在很多場景中,比如我們需要搭建一個集群,這時候容器要識別集群內的節點,就需要添加相應的host解析。這時就需要修改容器的hosts文件,下面我們將會看到在Docker中自動化實現修改hosts不是那么簡單的事。

問題的由來

hosts文件其實并不是存儲在Docker鏡像中的,/etc/hosts, /etc/resolv.conf和/etc/hostname,是存在主機上的/var/lib/docker/containers/(docker_id)目錄下,容器啟動時是通過mount將這些文件掛載到容器內部的。因此如果在容器中修改這些文件,修改部分不會存在于容器的top layer,而是直接寫入這3個文件中。容器重啟后修改內容不存在的原因是Docker每次創建新容器時,會根據當前docker0下的所有節點的IP信息重新建立hosts文件。也就是說,你的修改會被Docker給自動覆蓋掉。

解決辦法

修改hosts一眼看上去是一件很容易的事,根據上面的分析其實不是那么簡單的,如果一個分布式系統在數十個節點上,每次重新啟動都要去修改hosts顯得很麻煩,如何解決這一問題,目前有以下辦法。

開啟時加參數

開啟容器時候添加參數—add-host machine:ip可以實現hosts修改,在容器中可以識別machine主機。缺點是很多個節點的話命令會很長,有點不舒服(當然,你可以寫一個腳本了)。

進入容器修改

進入容器后可以用各種編輯器編輯修改hosts文件,這樣是最簡單粗暴的方式,缺點就是每次啟動容器都要修改一次。

dnsmasq

在每個容器中開啟dnsmasq開負責局域網內的容器節點主機名解析,但是這種方式在跨物理機的時候,好像不是很方便(具體情況還沒有實踐過,挖坑日后再填)。可以參考一下kiwenlau的工作

修改容器hosts查找目錄

我們可以想辦法讓容器開啟時候,不去找/etc/hosts文件,而是去找我們自己定義的hosts文件,下面是一個Dockerfile實例

1234567
FROM ubuntu:14.04RUN cp /etc/hosts /tmp/hosts #路徑長度最好保持一致RUN mkdir -p -- /lib-override && cp /lib/x86_64-linux-gnu/libnss_files.so.2 /lib-overrideRUN sed -i 's:/etc/hosts:/tmp/hosts:g' /lib-override/libnss_files.so.2ENV LD_LIBRARY_PATH /lib-overrideRUN echo "192.168.0.1 node1" >> /tmp/hosts #可以隨意修改/tmp/hosts了...

這樣修改后,容器每次啟動時就不去找/etc/hosts了,而是我們自己定義的/tmp/hosts,可以隨心所欲在其中修改了

小結

以上問題可以用于跨主機部署分布式Docker集群,結合之前的跨物理機Docker網絡互聯,便可以實現快速高效部署分布式集群

原文鏈接:

https://wongxingjun.github.io

-更多文章-

Spring Cloud GateWay初體驗

Kubernetes基礎與架構

對業務系統的監控 No.118

Kubernetes對象模型

拜托!面試請不要再問我Spring Cloud底層原理

【性能優化之道】每秒上萬并發下的Spring Cloud參數優化實戰

Docker 核心技術與實現原理

學習別跟我談興趣 No.88

條件注解 @ConditionalOnBean 的正確使用姿勢

分布式事務的實現原理

條件注解 @ConditionalOnBean 的正確使用姿勢

上述內容就是Docker中怎么對hosts進行修改,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武功县| 合作市| 普宁市| 芮城县| 城市| 思茅市| 灌云县| 高淳县| 通化市| 峨眉山市| 呈贡县| 通江县| 武乡县| 喀喇沁旗| 蓝山县| 明光市| 贡觉县| 建宁县| 宝山区| 疏附县| 济宁市| 罗城| 寿光市| 南澳县| 深圳市| 平顶山市| 六枝特区| 沁阳市| 合江县| 宜丰县| 德格县| 思南县| 和平县| 泗洪县| 巴彦县| 华蓥市| 夏河县| 宜昌市| 安乡县| 通州区| 靖安县|