Docker的網路-CoreDNS 上一篇有說明可以在container run時指定dns server,如果要自建hostname-ip的dns服務而啟動bind,就增加很多傳統管理議題,因為bind對container架構還是多了,所以我們要找cloud-native的方案 想找到相關的方案,可以從CNCF的landscape https://landscape.cncf.io/  我們找到畢業的專案 CoreDNS,代表應該是比較成熟的方案 https://coredns.io/manual/toc/ 官方的手冊相當簡單,沒有針對docker啟動的方式有多少說明,所以我們先猜測entrypoint可能停留在coredns 這個binary指令 其實經由docker hub檢視layer的說明,也可以看出來 https://hub.docker.com/layers/coredns/coredns/latest/images/sha256-2169b3b96af988cf69d7dd69efbcc59433eb027320eb185c6110e0850b997870?context=explore  > docker run -it --rm coredns/coredns  答對了,不過我們對coredns還是不熟,所以下一下指令看有什麼參數可以使用 > docker run -it --rm coredns/coredns --help  但出現一個問題:要怎麼讓容器抓到我們放在host的coredns.conf??? 經由dockerhub看到的layer資訊跟github,也許可以經由容器裡頭的/home/nonroot,將HOST pwd的路徑取得coredns.conf > docker inspect coredns/coredns  我們來設定一下coredns.conf ``` .:1054 { bind lo whoami } .:1054 { bind eth0 whoami } ``` 這是官方的範例,我們來啟動來測試: > docker run -it --rm -v $(pwd):/home/nonroot coredns/coredns -dns.port=1054 -conf=coredns.conf  看起來啟動成功了,後面我們來深入了解coredns可以作到的事情有哪些,以及容器如何使用它。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up