我尝试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版本(等)升级docker.io
或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