LoginSignup
1
1

More than 5 years have passed since last update.

Raspberry Pi用dockerの構築

Last updated at Posted at 2017-04-23

Raspberry Pi用dockerの構築

1. ラズパイ用のdocker

 これでラズパイ用のdocker構築シリーズとしては3本目になります。最後がdockerについてです。

  1. Raspberry Pi用docker-composeの構築
  2. Raspberry Pi用docker-distributionの構築
  3. Raspberry Pi用dockerの構築 (この記事です)

 dockerは、Dockercon17で発表されたように docker/dockerからmoby/mobyにリポジトリも移行しています。この移行後のmoby/mobyでもラズパイはサポートされていますので、この環境での構築方法のメモ書きとなります。

 Docker参照ドキュメントとして、Work with a development container

2. moby/mobyをクローン

 最初にmoby/mobyをクローンします。

git clone https://github.com/moby/moby.git

3. dockerのビルド

 dockerを作成するには、クローンしたディレクトリにcdして、そのままmakeを実行します。

cd moby
make

 ラズパイで実行して約6分ほどでしたが、色々とキャッシュされていて早かったのかも知れません。

 続けて、できあがったバイナリをインストールします。ビルドと同様にクローンしたmobyディレクトリで以下を実行します。

make install

 既定値では、/usr/local/binディレクトリに以下のコマンドがインストールされます。

-rwxr-xr-x 1 root root  17121380 Apr 23 22:19 docker
-rwxr-xr-x 1 root root  35243444 Apr 23 22:20 dockerd
-rwxr-xr-x 1 root root   6068608 Apr 23 22:20 docker-runc
-rwxr-xr-x 1 root root   7822060 Apr 23 22:20 docker-containerd
-rwxr-xr-x 1 root root   7330636 Apr 23 22:20 docker-containerd-ctr
-rwxr-xr-x 1 root root   2506768 Apr 23 22:20 docker-containerd-shim
-rwxr-xr-x 1 root root   2236867 Apr 23 22:20 docker-proxy
-rwxr-xr-x 1 root root    400064 Apr 23 22:20 docker-init

4. dockerの実行

 /usr/local/binにあるdockerコマンドを実行します。

# docker version
Client:
 Version:      17.06.0-dev
 API version:  1.30
 Go version:   go1.7.5
 Git commit:   83ee902
 Built:        Sun Apr 23 13:01:10 2017
 OS/Arch:      linux/arm

Server:
 Version:      17.06.0-dev
 API version:  1.30 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   83ee902
 Built:        Sun Apr 23 13:01:10 2017
 OS/Arch:      linux/arm
 Experimental: false

 dockerのバージョンが17.06.0-devでAPIバージョンも1.30になっています。

 ちなみに、現在docker公式で配布されているバージョンは、以下となっています。

# docker version
Client:
 Version:      17.04.0-ce
 API version:  1.28
 Go version:   go1.7.5
 Git commit:   4845c56
 Built:        Mon Apr  3 18:22:23 2017
 OS/Arch:      linux/arm

Server:
 Version:      17.04.0-ce
 API version:  1.28 (minimum version 1.12)
 Go version:   go1.7.5
 Git commit:   4845c56
 Built:        Mon Apr  3 18:22:23 2017
 OS/Arch:      linux/arm
 Experimental: false

5.システムの設定

 docker公式で配布されているdocker-engineの場合、/usr/binディレクトリにインストールされていますので、既にdocker-engineをインストールしている場合には、思い切って削除するかパスで細工するなりしておきましょう。

 docker-engineでは、systemd対応して/etc/systemd/system/multi-user.target.wants/docker.serviceが使用されています。このdocker.serviceファイルは、/etc/default/dockerファイルに対応していませんので、ExecStart=の行を直接編集しています。

## ExecStart=/usr/bin/dockerd -H fd://
ExecStart=/usr/local/bin/dockerd -H fd://

 編集後はsystemctl daemon-reloadするか、システムを再起動するかしておきます。

 ちなみに、上記のdocker version例では、/usr/local/bin/dockerdをビルドした新しいものにしているためにServerのバージョンも17.06.0-devとなっています。

 とりあえずは、以上となります。お楽しみいただけましたでしょうか。

1
1
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
1
1