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

Cannot connect to the Docker daemon. の対処法

More than 3 years have passed since last update.

とある日、Docker上で走らせていたナレッジベースシステムが落ちていた。

「どうせだれか間違ってdockerのプロセスkillしたんだろwww」とか思ってdocker psしてみたところ以下のエラーが。

$ docker ps
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

どうやっても治らなかったので再インストールします。

再インストール手順

下準備

公式ドキュメントにアンインストールの方法も書いてあったのでこちらを参考にします。

[https://docs.docker.com/engine/installation/linux/ubuntu:embed:cite]

どうやらdockerとかdocker-engineとか呼んでた時代はとうの昔のようで、古いパッケージを捨ててアップデートしてくれと書いてありました。(もしかしてコレが原因…?)

$ sudo apt-get remove docker docker-engine

ちなみに、dockerやdocker-engineを削除しても、作成したコンテナやイメージは消えないのでご心配なく。
(各ファイルは/var/lib/docker/に入ってるので、もし仮に全データを吹き飛ばしたいのであればこちらのディレクトリをrmしてください。)

特段の理由がない限りはlinux-image-extra-*ってパッケージ入れてね。これないとdockerがaufsっていうストレージドライバを使えないからさ。

って公式が言ってるので入れます。

$ sudo apt-get update

$ sudo apt-get install \
    linux-image-extra-$(uname -r) \
    linux-image-extra-virtual

さて、サクサク再インストールしていきましょう。

まずは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 -

念のため、キーのfingerprintが以下のものであるか確認してください。(公式サイトで確認することをおすすめします。)

9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88

$ sudo apt-key fingerprint 0EBFCD88

次に、dockerのリポジトリをaptに追加します。

基本はamd64だと思いますが、Raspbian等を使っている方はarmhfの方を実行してください。

amd64:

$ sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

armhf:

$ sudo add-apt-repository \
   "deb [arch=armhf] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

dockerのインストール

さて、ここからは安定版のdockerをインストールしていきます。

まず、パッケージのindexを更新しましょう。

$ sudo apt-get update

次に、dockerをインストールします。今回は、Community Editionをインストールするので、実際はdocker-ceというパッケージをインストールすることになります。

$ sudo apt-get install docker-ce

インストールが完了したら、以下のコマンドを実行してhello-worldイメージが正常に起動するか確認してください。

$ sudo docker run hello-world

これにて完了です。

dockerの更新手順

sudo apt-get updateを実行後、上記インストール手順を頭から繰り返せばいいらしいです。

詳しくは公式ドキュメントをご参照ください

[https://docs.docker.com/engine/installation/linux/ubuntu/#install-docker:embed:cite]

musaprg
スニペット類の著作権は「CC0 1.0」です
misw
プログラミング・2D/3DCG・DTM・シナリオ・動画製作等を一手に引き受ける、早稲田大学公認のデジタル創作サークル
https://misw.jp
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