本篇文章為大家展示了Docker中怎么對hosts進行修改,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
創(chuàng)新互聯(lián)建站是一家專注于成都網(wǎng)站建設(shè)、成都做網(wǎng)站與策劃設(shè)計,梅里斯網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:梅里斯等地區(qū)。梅里斯做網(wǎng)站價格咨詢:028-86922220
Docker修改hosts?這還不簡單,打開vim直接敲就完事兒了!然而事與愿違,事情沒有我們想的那么簡單。在很多場景中,比如我們需要搭建一個集群,這時候容器要識別集群內(nèi)的節(jié)點,就需要添加相應(yīng)的host解析。這時就需要修改容器的hosts文件,下面我們將會看到在Docker中自動化實現(xiàn)修改hosts不是那么簡單的事。
hosts文件其實并不是存儲在Docker鏡像中的,/etc/hosts, /etc/resolv.conf和/etc/hostname,是存在主機上的/var/lib/docker/containers/(docker_id)目錄下,容器啟動時是通過mount將這些文件掛載到容器內(nèi)部的。因此如果在容器中修改這些文件,修改部分不會存在于容器的top layer,而是直接寫入這3個文件中。容器重啟后修改內(nèi)容不存在的原因是Docker每次創(chuàng)建新容器時,會根據(jù)當(dāng)前docker0下的所有節(jié)點的IP信息重新建立hosts文件。也就是說,你的修改會被Docker給自動覆蓋掉。
修改hosts一眼看上去是一件很容易的事,根據(jù)上面的分析其實不是那么簡單的,如果一個分布式系統(tǒng)在數(shù)十個節(jié)點上,每次重新啟動都要去修改hosts顯得很麻煩,如何解決這一問題,目前有以下辦法。
開啟容器時候添加參數(shù)—add-host machine:ip可以實現(xiàn)hosts修改,在容器中可以識別machine主機。缺點是很多個節(jié)點的話命令會很長,有點不舒服(當(dāng)然,你可以寫一個腳本了)。
進入容器后可以用各種編輯器編輯修改hosts文件,這樣是最簡單粗暴的方式,缺點就是每次啟動容器都要修改一次。
在每個容器中開啟dnsmasq開負責(zé)局域網(wǎng)內(nèi)的容器節(jié)點主機名解析,但是這種方式在跨物理機的時候,好像不是很方便(具體情況還沒有實踐過,挖坑日后再填)。可以參考一下kiwenlau的工作
我們可以想辦法讓容器開啟時候,不去找/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集群,結(jié)合之前的跨物理機Docker網(wǎng)絡(luò)互聯(lián),便可以實現(xiàn)快速高效部署分布式集群
原文鏈接:
https://wongxingjun.github.io
-更多文章-
Spring Cloud GateWay初體驗
Kubernetes基礎(chǔ)與架構(gòu)
對業(yè)務(wù)系統(tǒng)的監(jiān)控 No.118
Kubernetes對象模型
拜托!面試請不要再問我Spring Cloud底層原理
【性能優(yōu)化之道】每秒上萬并發(fā)下的Spring Cloud參數(shù)優(yōu)化實戰(zhàn)
Docker 核心技術(shù)與實現(xiàn)原理
學(xué)習(xí)別跟我談興趣 No.88
條件注解 @ConditionalOnBean 的正確使用姿勢
分布式事務(wù)的實現(xiàn)原理
條件注解 @ConditionalOnBean 的正確使用姿勢
上述內(nèi)容就是Docker中怎么對hosts進行修改,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
標(biāo)題名稱:Docker中怎么對hosts進行修改
轉(zhuǎn)載來源:http://www.yijiale78.com/article14/gccoge.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、網(wǎng)站制作、營銷型網(wǎng)站建設(shè)、用戶體驗、軟件開發(fā)、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)