摘要:原文地址一些生產環境中要注意的參數配置。本文介紹一些生產環境中要特別注意的參數,這些參數可以通過在命令行參數形式給,也可以通過在里配置。然后執行來驗證配置是否生效。它們的原理就是修改參數。
原文地址
一些docker daemon生產環境中要注意的參數配置。
本文介紹一些生產環境中dockerd要特別注意的參數,這些參數可以通過在dockerd命令行參數形式給,也可以通過在/etc/docker/daemon.json里配置。本文介紹的就是daemon.json配置方式。
在開始之前,請先查看/etc/docker/daemon.json是否存在,如果不存在則新建一個,內容是{}。然后你要懂JSON文件格式。
如何應用配置下面所講的配置最好在Docker安裝完之后馬上做,如果已經有容器運行了,那么先stop掉所有容器,然后再做。
修改完之后重啟Docker daemon,比如在Ubuntu 16.04下:sudo systemctl restart docker.service。
然后執行docker info來驗證配置是否生效。
registry-mirrors{ "registry-mirrors": [] }
此參數配置的是Docker registry的鏡像網站,國內訪問docker hub有時候會抽風,所以配置一個國內的鏡像網站能夠加速Docker image的下載。
可以使用Daocloud加速器(需注冊,使用免費)或者其他云廠商提供的免費的加速服務。它們的原理就是修改registry-mirrors參數。
dns{ "dns": [] }
Docker內置了一個DNS Server,它用來做兩件事情:
解析docker network里的容器或Service的IP地址
把解析不了的交給外部DNS Server解析(dns參數設定的地址)
默認情況下,dns參數值為Google DNS nameserver:8.8.8.8和8.8.4.4。我們得改成國內的DNS地址,比如:
1.2.4.8
阿里DNS:223.5.5.5和223.6.6.6
114DNS:114.114.114.114和114.114.115.115
比如:
{ "dns": ["223.5.5.5", "223.6.6.6"] }log-driver
Log driver是Docker用來接收來自容器內部stdout/stderr的日志的模塊,Docker默認的log driver是JSON File logging driver。這里只講json-file的配置,其他的請查閱相關文檔。
json-file會將容器日志存儲在docker host machine的/var/lib/docker/containers/
max-size,單個日志文件最大尺寸,當日志文件超過此尺寸時會滾動,即不再往這個文件里寫,而是寫到一個新的文件里。默認值是-1,代表無限。
max-files,最多保留多少個日志文件。默認值是1。
根據服務器的硬盤尺寸設定合理大小,比如:
{ "log-driver": "json-file", "log-opts": { "max-size": "100m", "max-files":"5" } }storage-driver
Docker推薦使用overlay2作為Storage driver。你可以通過docker info | grep Storage來確認一下當前使用的是什么:
$ docker info | grep "Storage" Storage Driver: overlay2
如果結果不是overlay2,那你就需要配置一下了:
{ "storage-driver": "overlay2" }mtu
如果docker host machine的網卡MTU為1500,則不需要此步驟
MTU是一個很容易被忽略的參數,Docker默認的MTU是1500,這也是大多數網卡的MTU值。但是!在虛擬化環境下,docker host machine網卡的MTU可能不是1500,比如在openstack創建的虛擬的網卡的MTU是1450:
$ ip link 1: ens3:mtu 1450 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000 link/ether fa:16:3e:71:09:f5 brd ff:ff:ff:ff:ff:ff
當Docker網絡的MTU比docker host machine網卡MTU大的時候可能會發生:
容器外出通信失敗
影響網絡性能
所以將Docker網絡MTU設置成和host machine網卡保持一致就行了,比如:
{ "mtu": 1450 }
驗證:
$ ip link 3: docker0:mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default link/ether 02:42:6b:de:95:71 brd ff:ff:ff:ff:ff:ff
注意到docker0的MTU還是1500,不用驚慌,創建一個容器再觀察就變成1450了(下面的veth是容器的虛擬網卡設備):
$ docker run -itd --name busybox --rm busybox $ ip link 3: docker0:mtu 1450 qdisc noqueue state UP mode DEFAULT group default link/ether 02:42:6b:de:95:71 brd ff:ff:ff:ff:ff:ff 268: vethdf32b1b@if267: mtu 1450 qdisc noqueue master docker0 state UP mode DEFAULT group default link/ether 1a:d3:8a:3e:d3:dd brd ff:ff:ff:ff:ff:ff link-netnsid 2
在到容器里看看它的網卡,MTU也是1450:
$ docker exec busybox ip link 267: eth0@if268:mtu 1450 qdisc noqueue link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
關于Overlay network的MTU看這篇文章
參考資料Daemon CLI
Configure logging drivers
JSON File logging driver
Use the OverlayFS storage driver
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/28043.html
摘要:無論這個連接是外部主動建立的,還是內部建立的。協議有表示層數據的表示安全壓縮。在整個發展過程中的所有思想和著重點都以一種稱為的文檔格式存在。 部署基礎知識url:協議://網站地址:端口(/)路徑地址?參數eg: http://www.baidu.com:80/abc/dd/ www.baidu.com找服務器 80端口:找服務器上提供服務的應用 nginx uri:/ab...
摘要:無論這個連接是外部主動建立的,還是內部建立的。協議有表示層數據的表示安全壓縮。在整個發展過程中的所有思想和著重點都以一種稱為的文檔格式存在。 部署基礎知識url:協議://網站地址:端口(/)路徑地址?參數eg: http://www.baidu.com:80/abc/dd/ www.baidu.com找服務器 80端口:找服務器上提供服務的應用 nginx uri:/ab...
摘要:說起,必須要介紹是什么東西,為什么中小企業私有云適合使用。看一下現在的架構圖開個玩笑。上面這四點導致我們必須要統一架構,最終把整個業務系統遷移到基于的類似于的私有云的平臺。 本文系 ArchSummit 大會 CODING 工程師王振威演講實錄。 showImg(https://dn-coding-net-production-pp.qbox.me/c2f81423-54b9-4a7b...
摘要:剛才聽了謝樂冰的演講我覺得很多東西和我們的思路非常像,從我回國到現在大概有一年多的時間。在看來,一個業務應用應該是分層的,每一層都是一個所謂的服務,剛才謝樂冰講的所謂服務化和異步化,不會把這些東西從前到頭攪在一起,這樣非常難以擴展。 本文是數人云深圳技術分享課上Coding CTO 孫宇聰的演講實錄,小數帶你走近這位詼諧幽默的大牛,領略他深入的見解和豐富的實踐經驗。 非常感謝今天有這個...
閱讀 1012·2021-11-23 10:11
閱讀 3854·2021-11-16 11:50
閱讀 921·2021-10-14 09:43
閱讀 2713·2021-10-14 09:42
閱讀 2710·2021-09-22 16:02
閱讀 1056·2019-08-29 10:57
閱讀 3378·2019-08-29 10:57
閱讀 2268·2019-08-26 13:52