問題
久しぶりに家のPCでdockerコンテナ使おうとしたらエラー。
$ docker pull redmine:3.4.2
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
docker自動起動してなかったっけ? と思って見たら上がってる。
$ service docker status
docker start/running, process 2193
解決方法ググってみても、OS再起動とかdocker-ce再インストールとか書いてあるので、再インストールで対処する。
(dockerがeeとceに分かれてたの知らなかったし)
環境
- Linux Mint 17.3 Rosa
下準備
docker公式の手順に従う。
まずは、現在インストールされているdockerをアンインストール。
$ sudo apt-get remove docker docker-engine docker.io
dockerがaufsストレージドライバ使うため、linux-image-extra-*をインストール入れてとあるのでインストール。
(Linux kernelのバージョンが4以上の場合は手順が別になるらしい。自分の環境のkernelバージョンは3)
公式には記載なかったけど、自分の環境ではlinux-image-genericを指定しないと依存関係でエラー出たので指定する。
$ sudo apt-get install linux-image-extra-$(uname -r) \
linux-image-extra-virtual \
linux-image-generic
aptリポジトリをhttpsで使用するためのパッケージインストール。(自分の環境は既に入ってた)
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
docker公式のGPGキーを追加。
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
docker-CEのフィンガープリントを公式のものと比較確認。
$ sudo apt-key fingerprint 0EBFCD88
pub 4096R/0EBFCD88 2017-02-22
フィンガー・プリント = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <docker@docker.com>
sub 4096R/F273FCD8 2017-02-22
dockerリポジトリ追加
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
※ Linux Mint使ってる人は上記コマンドNG。原因は後述
インストール(エラー)
後はインストール、と思ったらエラーになった。
$ sudo apt-get update
$ sudo apt-get install docker-ce
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
E: パッケージ docker-ce が見つかりません
apt-get updateの結果を確認してみると、
$ sudo apt-get update | grep docker
取得:3 https://download.docker.com rosa InRelease
無視 https://download.docker.com rosa InRelease
取得:4 https://get.docker.com docker InRelease
無視 https://download.docker.com rosa Release.gpg
無視 https://get.docker.com docker InRelease
無視 https://download.docker.com rosa Release
ヒット https://get.docker.com docker Release.gpg
ヒット https://get.docker.com docker Release
ヒット https://get.docker.com docker/main amd64 Packages
ヒット https://get.docker.com docker/main i386 Packages
取得:5 https://get.docker.com docker/main Translation-ja_JP
エラー https://download.docker.com rosa/stable amd64 Packages
無視 https://download.docker.com rosa/stable Translation-ja_JP
無視 https://download.docker.com rosa/stable Translation-ja
無視 https://download.docker.com rosa/stable Translation-en
無視 https://get.docker.com docker/main Translation-ja_JP
無視 https://get.docker.com docker/main Translation-ja
無視 https://get.docker.com docker/main Translation-en
W: https://download.docker.com/linux/ubuntu/dists/rosa/stable/binary-amd64/Packages の取得に失敗しました HttpError404
E: いくつかのインデックスファイルのダウンロードに失敗しました。これらは無視されるか、古いものが代わりに使われます。
https://download.docker.com/linux/ubuntu/dists/rosa というURLがないのがエラー原因ぽい。(2018.1.1現在)
以下はhttps://download.docker.com/ の中。
上記ディレクトリに対応するUbuntuのバージョンは
- artful : Ubuntu 17.10
- trusty : Ubuntu 14.04
- xenial : Ubuntu 16.04
- yakkety : Ubuntu 16.10
- zesty : Ubuntu 17.04
Linux Mint 17.3 Rosa はUbuntu 14.04ベースなので、trustyから取得する必要があると思われる。
ちなみに https://download.docker.com/linux/ 配下にはLinux Mint相当のディレクトリはなかった。
リトライ
まずは登録したppaリポジトリを削除する。
ppa-purgeで削除出来なかったので、source listを直接削除する。
$ cat /etc/apt/sources.list.d/additional-repositories.list
deb [arch=amd64] https://download.docker.com/linux/ubuntu rosa stable
$ sudo rm -i /etc/apt/sources.list.d/additional-repositories.list
$ sudo apt-get update | grep docker
リポジトリのエラーがなくなった事を確認。
続いてdockerリポジトリを再度追加。lsb_releaseコマンド結果の代わりにtrustyを直接指定する。
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
trusty \
stable"
続いて再インストール。今度はインストール出来た。
$ sudo apt-get update
$ sudo apt-get install docker-ce
動作確認
公式の手順に従って、hello-worldイメージを実行。実行できた。
(イメージダウンロードが入るため、実行には少し時間が掛かる)
$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
ca4f61b1923c: Pull complete
Digest: sha256:445b2fe9afea8b4aa0b2f27fe49dd6ad130dfe7a8fd0832be5de99625dad47cd
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
参考