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 デーモンのコマンド構文を (古いバージョンから最新バージョンに変更された) /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