Docker學習筆記(四)-fixbug1-daemon.json

因daemon.json中DNS Server設置而引起的錯誤

在使用docker的過程中如果報出以下錯誤:

(1)無法連接到docker daemon (docker 守護進程)

docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.

(2) 重啓docker服務失敗

mingchen@mingchen-HP:~$ sudo service docker restart
docker stop/waiting
start: Job failed to start

(3)在容器內部無法ping通百度、谷歌等外網

unknown host www.baidu.com

如何解決:

主要分爲三個步驟。首先查詢主機使用的DNS服務器;接着根據查詢結果設置 /etc/docker/daemon.json 中的DNS server, 這個daemon.json文件實際上是docker中的daemon進程(守護進程)的配置文件,而守護進程又是所有啓動的容器的父進程;最後,重啓docker 服務。

(1)查詢本機的DNS Server

可以通過以下命令之一:

$ nm-tool | grep DNS

或者

$ nmcli dev show | grep DNS    

我的結果如下:

mingchen@mingchen-HP:/$ nm-tool |grep DNS
    DNS:             127.0.0.1
    DNS:             8.8.8.8
    DNS:             172.20.1.4
    DNS:             172.20.1.6

(2) 設置/etc/docker/daemon.json文件

以sudo的權限打開,使用編輯器gedit, nano, vim ,vi 等,看讀者愛好了。

{
 "dns": ["8.8.8.8","172.20.1.4","172.20.1.6", "127.0.0.1","8.8.4.4"]
}

按照上面的格式設置好。

(3) 重啓docker 服務

在終端輸入命令sudo service docker restart

mingchen@mingchen-HP:/$ sudo service docker restart
docker stop/waiting
docker start/running, process 1046

另外,我也曾經在docker開發者論壇上發過與這個問題相關的帖子,有興趣的話,可以去看看,完整回答在最底下,鏈接

N.B. 有關daemon.json文件

以下是完整的daemon.json文件可配置的參數表,我們在配置的過程中,只需要設置我們需要的參數即可,不必全部寫出來。詳細參考,官方文檔

{
    "api-cors-header": "",
    "authorization-plugins": [],
    "bip": "",
    "bridge": "",
    "cgroup-parent": "",
    "cluster-store": "",
    "cluster-store-opts": {},
    "cluster-advertise": "",
    "debug": true,
    "default-gateway": "",
    "default-gateway-v6": "",
    "default-runtime": "runc",
    "default-ulimits": {},
    "disable-legacy-registry": false,
    "dns": [],
    "dns-opts": [],
    "dns-search": [],
    "exec-opts": [],
    "exec-root": "",
    "fixed-cidr": "",
    "fixed-cidr-v6": "",
    "graph": "",
    "group": "",
    "hosts": [],
    "icc": false,
    "insecure-registries": [],
    "ip": "0.0.0.0",
    "iptables": false,
    "ipv6": false,
    "ip-forward": false,
    "ip-masq": false,
    "labels": [],
    "live-restore": true,
    "log-driver": "",
    "log-level": "",
    "log-opts": {},
    "max-concurrent-downloads": 3,
    "max-concurrent-uploads": 5,
    "mtu": 0,
    "oom-score-adjust": -500,
    "pidfile": "",
    "raw-logs": false,
    "registry-mirrors": [],
    "runtimes": {
        "runc": {
            "path": "runc"
        },
        "custom": {
            "path": "/usr/local/bin/my-runc-replacement",
            "runtimeArgs": [
                "--debug"
            ]
        }
    },
    "selinux-enabled": false,
    "storage-driver": "",
    "storage-opts": [],
    "swarm-default-advertise-addr": "",
    "tls": true,
    "tlscacert": "",
    "tlscert": "",
    "tlskey": "",
    "tlsverify": true,
    "userland-proxy": false,
    "userns-remap": ""
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章