Help us understand the problem. What is going on with this article?

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

More than 3 years have 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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away