iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
DevOps

搞定Docker網路系列 第 5

Docker的網路-CoreDNS

  • 分享至 

  • xImage
  •  

上一篇有說明可以在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可以作到的事情有哪些,以及容器如何使用它。


上一篇
Docker的網路-DNS篇
下一篇
Docker的網路-Coredns深入研究
系列文
搞定Docker網路31
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言