我嘗試docker-ce
按照官方 Docker 文件中提供的說明進行安裝使用儲存庫。安裝到這裡就卡住了:
Setting up docker-ce (17.09.0~ce-0~ubuntu) ...
insserv: warning: script 'K01postgresql-9.5' missing LSB tags and overrides
insserv: warning: script 'postgresql-9.5' missing LSB tags and overrides
等待很長時間後,我用 中斷了該過程sudo killall apt-get
。現在,每當我嘗試使用使用 apt-get 的命令時,它都會顯示以下內容:
E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
當我運行該命令時,它只是開始運行永遠不會完成的原始命令。此時,我只想解決這個問題,甚至無法運行 Docker(我只是想嘗試)。
我已經嘗試過大多數答案相關問題。我什至無法使用,sudo apt-get remove docker-ce
因為我遇到了同樣的問題。
有關 docker 安裝的一些資訊:
docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: e
Drop-In: /etc/systemd/system/docker.service.d
└─ubuntu.conf
Active: activating (start) since mié 2017-11-22 15:38:31 CST; 7min ago
Docs: https://docs.docker.com
Main PID: 1431 (docker)
Tasks: 6
Memory: 18.4M
CPU: 21ms
CGroup: /system.slice/docker.service
└─1431 /usr/bin/docker -d -H fd://
docker-ce:
Installed: 17.09.0~ce-0~ubuntu
Candidate: 17.09.0~ce-0~ubuntu
Version table:
*** 17.09.0~ce-0~ubuntu 100
100 /var/lib/dpkg/status
我運行的是 Ubuntu 16.04
答案1
看起來docker-ce
掛在服務啟動上:
\_ apt install docker-ce
\_ /usr/bin/dpkg --status-fd 64 --configure --pending
\_ /bin/sh /var/lib/dpkg/info/docker-ce.postinst configure
\_ /bin/sh /usr/sbin/invoke-rc.d docker start
\_ systemctl start docker.service
\_ /bin/systemd-tty-ask-password-agent --watch
殺戮systemctl start docker.service
過程應該就夠了:
sudo kill -9 $(ps aux | grep "systemctl start docker.service" | head -n 1 | awk '{print $2}')
檢查 systemd 作業:
sudo systemctl list-jobs
JOB UNIT TYPE STATE
2831057 docker.service start running
如果有任何 docker 作業正在運行,請將其殺死:
sudo systemctl kill docker.service
確保驗證您沒有定義任何覆蓋:
/etc/systemd/system/docker.service.d/
例如覆蓋命令(在17.03
發布中使用):
ExecStart=/usr/bin/docker daemon
代替/usr/bin/dockerd
。在繼續之前,請確保終止任何剩餘的 docker 進程:
ps aux | grep "[d]ockerd"
停止剩餘的 Docker 守護程式(如果有):
sudo kill -9 $(ps aux | grep "[d]ockerd" | head -n 1 | awk '{print $2}')
docker.io
如果您要從先前的 docker 版本(等)升級docker-engine
或只是更改底層文件存儲,則在安裝新版本之前刪除所有 docker 資料會更安全。
sudo rm -rf /var/lib/docker
sudo apt install docker-ce
要修復損壞的安裝,只需運行sudo dpkg --configure -a
即可docker.service
啟動。
答案2
我遇到了同樣的問題,以下是我完全刪除 docker 所做的所有步驟。我希望它會有所幫助
停止docker服務
service docker stop
中斷安裝後拆除鎖
rm /var/lib/dpkg/lock
正在恢復
dpkg --configure -a
如果 dpkg 卡住,請從不同的終端停止 docker 服務
service docker stop
刪除所有 docker 軟體包並進行清理
apt-get remove docker docker-engine docker.io docker-ce
apt-get purge docker docker-engine docker.io docker-ce
apt-get autoremove
apt-get autoclean
刪除所有docker相關文件
rm -rf /lib/systemd/system/docker.service
rm -rf /etc/docker
rm -rf /var/lib/docker
rm -rf /run/docker.sock
rm -rf /etc/systemd/system/docker.service.d
可選,更新包
apt-get update / upgrade / dist-upgrade
重新啟動
reboot
答案3
我昨天也遇到了同樣的問題。我重新啟動了伺服器:
sudo reboot
並重新配置套件:
sudo dpkg --configure -a
問題解決了。
答案4
我遇到了完全相同的問題,只是按如下方式解決了它(我的問題的根源是從舊版本更新到最新版本的 docker):
1.- 停止 docker 服務(它試圖啟動錯誤的守護程式指令):systemctl stop docker.service
2.- 修改 docker daemon 指令語法(從舊版改為最新版本): /etc/systemd/system/docker.service.d/50-docker_dns.conf 來自: ExecStart=/usr/bin/docker daemon .. .到:ExecStart=/usr/bin/dockerd ...
3.- 重新啟動 docker 守護程式以便載入新設定:systemctl start docker.service