Edited at

Linux Mintでのdocker-ceインストール

More than 1 year has passed since last update.


問題

久しぶりに家の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/ の中。

範囲を選択_024.png

上記ディレクトリに対応する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.


参考

https://qiita.com/musaprg/items/f9eb7f3687a698a10250

https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/

https://ja.wikipedia.org/wiki/Linux_Mint