とある日、Docker上で走らせていたナレッジベースシステムが落ちていた。
「どうせだれか間違ってdockerのプロセスkillしたんだろwww」とか思ってdocker ps
してみたところ以下のエラーが。
$ docker ps Cannot connect to the Docker daemon. Is the docker daemon running on this host?
どうやっても治らなかったので再インストールします。
再インストール手順
下準備
公式ドキュメントにアンインストールの方法も書いてあったのでこちらを参考にします。
どうやら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
の方を実行してください。
$ 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
を実行後、上記インストール手順を頭から繰り返せばいいらしいです。
詳しくは公式ドキュメントをご参照ください