とある日、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を実行後、上記インストール手順を頭から繰り返せばいいらしいです。
詳しくは公式ドキュメントをご参照ください
