最近我遇到了一個(gè)很奇怪的問(wèn)題,就是我在使用Docker的時(shí)候,發(fā)現(xiàn)它一直無(wú)法正常啟動(dòng)。我運(yùn)行了docker run命令,但是它卻一直給我返回啟動(dòng)失敗的錯(cuò)誤信息,讓我非常煩惱。
我開(kāi)始認(rèn)真排查這個(gè)問(wèn)題,先是檢查了我的電腦的操作系統(tǒng)和內(nèi)核版本是否支持Docker的運(yùn)行。首先,我的操作系統(tǒng)是Ubuntu16.04,我在官網(wǎng)上查看了一下Docker的系統(tǒng)要求,確認(rèn)我的操作系統(tǒng)版本是支持Docker的。然后我查看了我的內(nèi)核版本,發(fā)現(xiàn)它是3.13版的,也在官網(wǎng)上查證了一下,發(fā)現(xiàn)我的內(nèi)核版本也是支持Docker的。
$ cat /etc/*-release ... DISTRIB_RELEASE=16.04 ...
$ uname -r 3.13.0-139-generic
接下來(lái),我開(kāi)始檢查Docker的啟動(dòng)日志,看看有沒(méi)有什么異常情況。我使用了journalctl -u docker.service命令來(lái)查看Docker的啟動(dòng)日志,發(fā)現(xiàn)其中有一些異常日志,但是我并不知道具體的原因是什么。
$ journalctl -u docker.service ... dockerd[12870]: error while loading shared libraries: libseccomp.so.2: cannot open shared object file: No such file or directory dockerd[12870]: failed to start daemon: error initializing graphdriver: driver not supported dockerd[12870]: Error starting daemon: error initializing graphdriver: driver not supported systemd[1]: docker.service: Main process exited, code=exited, status=1/FAILURE systemd[1]: Failed to start Docker Application Container Engine. ...
最后,我在Google上查閱了大量的相關(guān)資料,終于發(fā)現(xiàn)了問(wèn)題的所在。原來(lái)是因?yàn)槲业牟僮飨到y(tǒng)版本實(shí)在是太老了,導(dǎo)致我需要手動(dòng)安裝最新版的Docker才行。我非常感謝網(wǎng)上這位好心人的分享,讓我最終找到了問(wèn)題所在:
$ sudo apt-get remove docker docker-engine docker.io $ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - $ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" $ sudo apt-get update $ sudo apt-get install docker-ce
在安裝了最新版的Docker之后,我重新運(yùn)行了docker run命令,終于成功啟動(dòng)了Docker,非常開(kāi)心!