11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

WSL(Debian GNU/Linux)にdockerを入れた

Last updated at Posted at 2019-04-29

WSL(Debian GNU/Linux)にdockerを入れた

1. はじめに

Docker Desktopをインストールして立ち上げてみたのだが、私の自宅の貧弱スペックPCは『カクカクフリーズ状態』に陥り、とてもそれを立ち上げながら作業する気持ちになれなかったので、WSLにインストールする事にした。

2. 環境

Windows10の環境

Windows 10 Pro Insider Preview
評価コピー。Build 18875.rs_prerelease.190405-1518

WSL(Debian GNU/Linux)の環境


xxxxxx@xxxxxxxxxxxxxx:~$ cat /etc/debian_version
9.7
xxxxxx@xxxxxxxxxxxxxx:~$ cat /etc/issue
Debian GNU/Linux 9 \n \l

3. インストール作業

3.1. つまづき

こちらのページのとおりに作業を進めて行けば、インストールそのものは簡単に終わる。ページからコマンドをコピー&ペーストでサクサクと進めれば良いだろう。
https://docs.docker.com/install/linux/docker-ce/debian/#install-docker-ce

しかし、その方法でインストールされる、最新バージョンのDockerでは、
Dockerのサービス起動には成功するのだが、次の段階のコンテナ起動で、
以下のようなエラーを吐いて、どうしても動かない。


xxxxxx@xxxxxxxxxxxxxx:~$ docker start 209ebb8f7e26
Error response from daemon: OCI runtime create failed: container_linux.go:345: starting container process caused "process_linux.go:297: getting the final child's pid from pipe caused \"EOF\"": unknown
Error: failed to start containers: 209ebb8f7e26

調査を進めて行くと、WSLがdockerの新機能に対応していない事が原因で、通信が不調なのだから、dockerをダウングレードせよとの事だった。ネット上の情報はubuntuが多くdebianが少ない。また、WSLの記事となるとさらに少なくて、英語で書かれたubuntuやmacosの記事をWSL(debian GNU/Linux)用に読み替える事に、一番時間がかかった。

3.2. 再インストール(ダウングレード)

あまり関係ないかもしれないが、Windowsの管理者モードで起動した方がよさそう。
ターミナルを閉じて、再度立ち上げる。
20190430_2.png

マニュアルに記載のあるとおり、以下のコマンドで、docker-ceを削除する。


sudo apt-get purge docker-ce

sudo rm -rf /var/lib/docker

以下のコマンドでdocker-ceのバージョンを指定してインストールする。
(17.03.3~ce-0~debian-stretchをインストールしたら上手く行きました)

sudo apt-get install docker-ce=17.03.3~ce-0~debian-stretch

ここからが重要なのだが、公式のマニュアルには書かれておらず、暫くハマったのだが、以下のとおりコマンドを順次投入してやると、起動する。

sudo cgroupfs-mount
sudo usermod -aG docker $USER
sudo service docker start

cgroupfs-mountは特殊なセキュリティの仕掛けとの事。このコマンドを投入しないとdockerのサービスは起動しない。

以下のとおりDockerの起動が確認された。

xxxxxx@xxxxxxxxxxxxxx:~$ sudo service docker status
[sudo] password for kazuki:
[ ok ] Docker is running.

コンテナを実行する。

sudo docker run hello-world

コンテナの実行結果が表示された。
20190430.png

4. まとめ

最初からdocker-ceをダウングレードしてインストールすれば良いとする情報があれば良かったと思うので、今回は投稿させていただきました。WSLが更新されれば最新のdockerにも対応するようになるかもしれませんし、先の事はわかりませんが、備忘録的に纏めさせていただきます。

・ debianの情報は少ないのでubuntuの方が調査はやりやすい。
・ Windowsの管理者モードでターミナルを立ち上げること。
・ Dockerの起動コマンドはマニュアルに記載が無い。cgroupfs-mountを実行する必要がある。
・ docker-ceは17.03.3~ce-0~debian-stretchにダウングレードする。
https://qiita.com/forest1/items/ab6d8b345653c614229b こちらも参考になります。

11
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?