摘要:注該文由編寫,原文地址為接著我們前面那篇關于容器遷移的文章。我想闡述一個簡單的讓容器之間通過名字交互的技巧。容器在啟動的時候有不同的。例如,讓你的容器知道數據庫地址的變更。無論任何時候我們改變容器,我們更新配置文件并且獲取服務更新。
注:該文由 Vincent Viallet 編寫,原文地址為 DNS And Docker Containers
接著我們前面那篇關于容器遷移的文章。我想闡述一個簡單的讓容器之間通過名字交互的技巧。我們已經在構建 devo.ps 的時候使用了幾次。
手頭的問題是使用 Docker。容器在啟動的時候有不同的 IP。甚至在一個成功的數據遷移或是簡單的重起你的容器,你都需要傳播這個新信息。例如,讓你的 app 容器知道數據庫地址的變更。
當然,你也可以使用 etcd 或是相關類型的工程。但是有時有點殺雞焉用牛刀的感覺,或者是你只是簡單的沒有時間或者是沒有資源。
讓我們使用簡單的方法:簡單的設置一個 DNS。我們保持簡單并且在當前主機使用 dnsmasq,因為它也被 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 是你主機的 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
無論任何時候我們改變容器,我們更新 host 配置文件并且獲取 DNS 服務更新。
$ > 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 現在可以簡單的通過在它的配置文件中使用 db 作為主機來訪問它的數據庫。上面的腳本可以有一個更好方法來處理邊界情況,你可以嘗試下。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/26342.html
摘要:正在學習,留著看看轉自的大坑小洼成為云計算領域的新寵兒已經是不爭的事實,作為高速發展的開源項目,難免存在這樣或那樣的瑕疵。話不多說,一起來領略的大坑小洼。原因回歸至上文的第一個坑。如此一來,只要內部涉及到域名解析,則立即受到影響。 正在學習Docker,留著看看 轉自Docker的大坑小洼 Docker成為云計算領域的新寵兒已經是不爭的事實,作為高速發展的開源項目,難免存在這樣或那樣...
摘要:創建用戶組并添加用戶。默認情況下是過濾掉所有的入站規則。初始命令表示一旦容器啟動,需要運行的命令,此時使用,表示什么也不做,只需進入命令行即可。1.什么是docker docker翻譯為搬運工,在這里應該可以理解為搬運應用的工具,也就是云.先了解其運用場景之后更容易對他形成深刻理解. Docker提供了一種可移植的配置標準化機制,允許你一致性地在不同的機器上運行同一個Container;...
摘要:一安裝快捷安裝快捷安裝參考手動安裝先查看內核,更新包要求系統的內核版本安裝依賴包設置國內鏡像源如果安裝過,卸載舊版本查看倉庫中所有,安裝測試啟動關閉服務加入隨機啟動二常用命令每次使用命令都需要, 一、docker安裝 1、快捷安裝 快捷安裝參考:https://get.daocloud.io/#inst... curl -sSL https://get.daocloud.io/doc...
摘要:一安裝快捷安裝快捷安裝參考手動安裝先查看內核,更新包要求系統的內核版本安裝依賴包設置國內鏡像源如果安裝過,卸載舊版本查看倉庫中所有,安裝測試啟動關閉服務加入隨機啟動二常用命令每次使用命令都需要, 一、docker安裝 1、快捷安裝 快捷安裝參考:https://get.daocloud.io/#inst... curl -sSL https://get.daocloud.io/doc...
摘要:日志會顯示令牌過期的信息,隨后檢查主機和主機的時鐘是否同步。如果這個子網已經被使用,你將需要更改網絡中使用的默認子網。如果負載均衡器處于初始化狀態,則很可能主機之間無法進行跨主機通信。而一直顯示黃色初始化狀態,說明一直沒有通過健康檢查。 一、服務/容器 1、為什么我只能編輯容器的名稱? Docker容器在創建之后就不可更改了。唯一可更改的內容是我們要存儲的不屬于Docker容器本身的那...
閱讀 3116·2021-11-18 10:02
閱讀 2623·2021-10-13 09:47
閱讀 3066·2021-09-22 15:07
閱讀 800·2019-08-30 15:43
閱讀 1818·2019-08-30 10:59
閱讀 1696·2019-08-29 15:34
閱讀 1710·2019-08-29 15:06
閱讀 449·2019-08-29 13:28