摘要:注該文由編寫,原文地址為接著我們前面那篇關(guān)于容器遷移的文章。我想闡述一個(gè)簡(jiǎn)單的讓容器之間通過名字交互的技巧。容器在啟動(dòng)的時(shí)候有不同的。例如,讓你的容器知道數(shù)據(jù)庫(kù)地址的變更。無(wú)論任何時(shí)候我們改變?nèi)萜鳎覀兏屡渲梦募⑶耀@取服務(wù)更新。
注:該文由 Vincent Viallet 編寫,原文地址為 DNS And Docker Containers
接著我們前面那篇關(guān)于容器遷移的文章。我想闡述一個(gè)簡(jiǎn)單的讓容器之間通過名字交互的技巧。我們已經(jīng)在構(gòu)建 devo.ps 的時(shí)候使用了幾次。
手頭的問題是使用 Docker。容器在啟動(dòng)的時(shí)候有不同的 IP。甚至在一個(gè)成功的數(shù)據(jù)遷移或是簡(jiǎn)單的重起你的容器,你都需要傳播這個(gè)新信息。例如,讓你的 app 容器知道數(shù)據(jù)庫(kù)地址的變更。
當(dāng)然,你也可以使用 etcd 或是相關(guān)類型的工程。但是有時(shí)有點(diǎn)殺雞焉用牛刀的感覺,或者是你只是簡(jiǎn)單的沒有時(shí)間或者是沒有資源。
讓我們使用簡(jiǎn)單的方法:簡(jiǎn)單的設(shè)置一個(gè) DNS。我們保持簡(jiǎn)單并且在當(dāng)前主機(jī)使用 dnsmasq,因?yàn)樗脖?Docker 用于 DHCP 的目的。
讓我們開始:
dnsmasq 加載額外的配置文件
$ > cat /etc/dnsmasq.conf listen-address=0.0.0.0 interface=lo interface=eth0 interface=docker0 resolv-file=/etc/resolv.dnsmasq.conf conf-dir=/opt/docker/dnsmasq.d # <== Here !
我們使用 dnsmasq 作為它的解析器來獲取容器;通常 172.17.42.1 是你主機(jī)的 IP。
$ > docker run -d -dns 172.17.42.1 -name db -h db db_image $ > docker run -d -dns 172.17.42.1 -name app -h app app_image
無(wú)論任何時(shí)候我們改變?nèi)萜鳎覀兏?host 配置文件并且獲取 DNS 服務(wù)更新。
$ > container="db" $ > new_ip=$(docker inspect $container | grep IPAddress | cut -f4 -d""") $ > echo "host-record=$container,$new_ip" > /opt/docker/dnsmasq.d/0host_$container $ > service dnsmasq restart
你的 app 現(xiàn)在可以簡(jiǎn)單的通過在它的配置文件中使用 db 作為主機(jī)來訪問它的數(shù)據(jù)庫(kù)。上面的腳本可以有一個(gè)更好方法來處理邊界情況,你可以嘗試下。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/26342.html
摘要:正在學(xué)習(xí),留著看看轉(zhuǎn)自的大坑小洼成為云計(jì)算領(lǐng)域的新寵兒已經(jīng)是不爭(zhēng)的事實(shí),作為高速發(fā)展的開源項(xiàng)目,難免存在這樣或那樣的瑕疵。話不多說,一起來領(lǐng)略的大坑小洼。原因回歸至上文的第一個(gè)坑。如此一來,只要內(nèi)部涉及到域名解析,則立即受到影響。 正在學(xué)習(xí)Docker,留著看看 轉(zhuǎn)自Docker的大坑小洼 Docker成為云計(jì)算領(lǐng)域的新寵兒已經(jīng)是不爭(zhēng)的事實(shí),作為高速發(fā)展的開源項(xiàng)目,難免存在這樣或那樣...
摘要:創(chuàng)建用戶組并添加用戶。默認(rèn)情況下是過濾掉所有的入站規(guī)則。初始命令表示一旦容器啟動(dòng),需要運(yùn)行的命令,此時(shí)使用,表示什么也不做,只需進(jìn)入命令行即可。1.什么是docker docker翻譯為搬運(yùn)工,在這里應(yīng)該可以理解為搬運(yùn)應(yīng)用的工具,也就是云.先了解其運(yùn)用場(chǎng)景之后更容易對(duì)他形成深刻理解. Docker提供了一種可移植的配置標(biāo)準(zhǔn)化機(jī)制,允許你一致性地在不同的機(jī)器上運(yùn)行同一個(gè)Container;...
摘要:一安裝快捷安裝快捷安裝參考手動(dòng)安裝先查看內(nèi)核,更新包要求系統(tǒng)的內(nèi)核版本安裝依賴包設(shè)置國(guó)內(nèi)鏡像源如果安裝過,卸載舊版本查看倉(cāng)庫(kù)中所有,安裝測(cè)試啟動(dòng)關(guān)閉服務(wù)加入隨機(jī)啟動(dòng)二常用命令每次使用命令都需要, 一、docker安裝 1、快捷安裝 快捷安裝參考:https://get.daocloud.io/#inst... curl -sSL https://get.daocloud.io/doc...
摘要:一安裝快捷安裝快捷安裝參考手動(dòng)安裝先查看內(nèi)核,更新包要求系統(tǒng)的內(nèi)核版本安裝依賴包設(shè)置國(guó)內(nèi)鏡像源如果安裝過,卸載舊版本查看倉(cāng)庫(kù)中所有,安裝測(cè)試啟動(dòng)關(guān)閉服務(wù)加入隨機(jī)啟動(dòng)二常用命令每次使用命令都需要, 一、docker安裝 1、快捷安裝 快捷安裝參考:https://get.daocloud.io/#inst... curl -sSL https://get.daocloud.io/doc...
摘要:日志會(huì)顯示令牌過期的信息,隨后檢查主機(jī)和主機(jī)的時(shí)鐘是否同步。如果這個(gè)子網(wǎng)已經(jīng)被使用,你將需要更改網(wǎng)絡(luò)中使用的默認(rèn)子網(wǎng)。如果負(fù)載均衡器處于初始化狀態(tài),則很可能主機(jī)之間無(wú)法進(jìn)行跨主機(jī)通信。而一直顯示黃色初始化狀態(tài),說明一直沒有通過健康檢查。 一、服務(wù)/容器 1、為什么我只能編輯容器的名稱? Docker容器在創(chuàng)建之后就不可更改了。唯一可更改的內(nèi)容是我們要存儲(chǔ)的不屬于Docker容器本身的那...
閱讀 3115·2021-11-18 10:02
閱讀 2621·2021-10-13 09:47
閱讀 3056·2021-09-22 15:07
閱讀 798·2019-08-30 15:43
閱讀 1814·2019-08-30 10:59
閱讀 1693·2019-08-29 15:34
閱讀 1708·2019-08-29 15:06
閱讀 445·2019-08-29 13:28