Ubuntu 18.04にDockerをインストールしようとしていますが、次のエラーが発生します。
The following packages have unmet dependencies:
docker-ce : Depends: containerd.io (>= 1.2.2-3) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
修正するにはどうすればよいですか?
あなたはcontainerdパッケージをインストールする必要があります、これは私がそれを解決した方法です。
$ curl -O https://download.docker.com/linux/ubuntu/dists/bionic/pool/Edge/AMD64/containerd.io_1.2.2-3_AMD64.deb
$ Sudo apt install ./containerd.io_1.2.2-3_AMD64.deb
Sudo snap install docker
Ubuntu 18.04これは私のために働いた。
次のリンクが機能しませんでした
これのためにgithubで開かれた問題がありますか https://github.com/docker/for-linux/issues/832 といくつかの回避策があります。 Eoanの安定したパッケージはまだありません。いくつかの回避策は次のとおりです。
Snapには利用可能なバージョンがありますが、古すぎます(18.x)。ユニバースリポジトリにはdocker.ioパッケージがあります(19.03、最後ではなく、snapより新しい)。
編集/etc/apt/sources.list
この行で:
deb [Arch=AMD64] https://download.docker.com/linux/ubuntu eoan stable
eoan
をbionic
に変更します
Sudo apt update
を実行してから、インストールを再試行してくださいdocker-ce
Ubuntu 19.10では、containerd
とrunc
を依存関係として持つパッケージdocker.io
をインストールすることで、Dockerをインストールできます。または、ここで説明されているように、docker-ce
、docker-ce-cli
をdockerリポジトリから直接インストールすることもできます https://docs.docker.com/install/linux/docker-ce/ubuntu/ =。この代替アプローチでは、containerd
およびrunc
の依存関係は、単一の依存関係containerd.io
に置き換えられます。問題は、奇妙な理由で、containerd.io
がdockerリポジトリにないことです。したがって、 https://askubuntu.com/a/1190896/456438 で提案されているように、手動でインストールする必要があります。
containerd.io
は、(パッケージ自体の中で)containerd
およびrunc
の有効な置き換えであると言われていることに注意してください。逆は確認されていませんが、パッケージdocker-ceを変更してcontainerd.io
の依存関係をcontainerd
に置き換えると、機能します。私は https://fabianlee.org/2018/09の指示に従いました/ 28/ubuntu-customizing-and-repacking-a-deb-file / パッケージの依存関係を変更するには(Sudoなし):
cd $(mktemp -d -t docker-XXX)
apt download docker-ce
ar xf docker-ce_*.deb
mkdir DEBIAN
tar xf control.tar.xz -C DEBIAN
最初のコマンドは一時ディレクトリのみを作成し、そこにcdします。残りはDEBIANサブディレクトリのパッケージから5つのファイルを抽出します。ファイルDEBIAN/control
を編集してcontainerd.io
をcontainerd
に変更し、ファイルを保存しました。私はパッケージを再構築するための指示を続けました:
tar -C DEBIAN -cJf control.tar.xz .
ar rcs docker-ce.deb debian-binary control.tar.xz data.tar.xz
これにより、一時ディレクトリに新しいdebファイルdocker-ce.deb
が作成されます。私はここの指示に従いました https://docs.docker.com/install/linux/docker-ce/ubuntu/ がSudo apt install ...
コマンドでcontainerd.io
をcontainerd
に置き換えて、 docker-ce
と./docker-ce.deb
動いた ! docker run hello-world
でテスト済み。