您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Docker在一段時間不用后無法啟動怎么回事的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
docker1.12版本剛出的時候,自己建了個虛擬機安裝實驗了下內置的swarm模式的新特性,后來這個虛擬機就一直沒用。今天在打開這個虛擬機時,發現docker服務無法啟動了,具體現象如下:
[root@node1 /]# service docker start Redirecting to /bin/systemctl start docker.service Job for docker.service failed because the control process exited with error code. See "systemctl status docker.service" and "journalctl -xe" for details.
查看詳細的信息
[root@node1 /]# systemctl status docker.service -l * docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since 六 2017-01-07 20:19:22 CST; 56s ago Docs: https://docs.docker.com Process: 2707 ExecStart=/usr/bin/dockerd (code=exited, status=1/FAILURE) Main PID: 2707 (code=exited, status=1/FAILURE) 1月 07 20:19:21 node1 dockerd[2707]: time="2017-01-07T20:19:21.941128813+08:00" level=warning msg="mountpoint for pids not found" 1月 07 20:19:21 node1 dockerd[2707]: time="2017-01-07T20:19:21.941923814+08:00" level=info msg="Loading containers: start." 1月 07 20:19:21 node1 dockerd[2707]: ...time="2017-01-07T20:19:21.966308550+08:00" level=info msg="Firewalld running: false" 1月 07 20:19:22 node1 dockerd[2707]: time="2017-01-07T20:19:22.458578104+08:00" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemon option --bip can be used to set a preferred IP address" 1月 07 20:19:22 node1 dockerd[2707]: time="2017-01-07T20:19:22.572281786+08:00" level=info msg="Loading containers: done." 1月 07 20:19:22 node1 dockerd[2707]: time="2017-01-07T20:19:22.635556518+08:00" level=fatal msg="Error creating cluster component: error while loading TLS Certificate in /var/lib/docker/swarm/certificates/swarm-node.crt: x509: certificate has expired or is not yet valid" 1月 07 20:19:22 node1 systemd[1]: docker.service: main process exited, code=exited, status=1/FAILURE 1月 07 20:19:22 node1 systemd[1]: Failed to start Docker Application Container Engine. 1月 07 20:19:22 node1 systemd[1]: Unit docker.service entered failed state. 1月 07 20:19:22 node1 systemd[1]: docker.service failed.
其中有一條錯誤信息,大致意思是swarm-mode.crt證書已經過期或無效。
error while loading TLS Certificate in /var/lib/docker/swarm/certificates/swarm-node.crt: x509: certificate has expired or is not yet valid
查詢docker的issue里,是有一條24132號關于這個問題的討論的:
Swarm certificates automatically renew and have 90 day expiry period by default. Still, if you don't start the daemon during that time the certificates will expire and starting daemon will fail with
time="2016-06-29T17:18:06.165656736Z" level=fatal msg="Error creating cluster component: error while loading TLS Certificate in /var/lib/docker/swarm/certificates/swarm-node.crt: x509: certificate has expired or is not yet valid"
I think refusing to start and not ignoring this error is correct. We could provide
--reset-swarm
option to leave swarm so the user doesn't need to remove the state dir manually. Problem is that user must remember to remove this option as otherwise, it would clear the state on every next restart as well.Maybe a good enough solution would be to add instructions for removing the state directory in the error message.
swarm的證書默認是有90天的有效期,如果在有效期內,可以通過自動續期的機制更新證書,但是如果長時間沒有啟動服務器,超過了有效期,那docker將無法啟動。
針對這個問題,我們可以先將/var/lib/docker/swarm目錄刪除或更名,docker就可以正常啟動了。
感謝各位的閱讀!關于“Docker在一段時間不用后無法啟動怎么回事”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。