RaspberryPi2にDocker導入


簡易サーバとしてRaspberryPi2を購入してみました。
RaspberryPi2でDockerを使用してもARMアーキテクチャのOSしか使用できず、ポータビリティに難があります。
しかしRaspberryPiをはじめ、ARMのサーバを追加導入した際のスケールアウトを想定してポータビリティを上げておきたいと考え、あえてDockerを導入してみようと思います。


## apt-getでパッケージをインストール

以下コマンドでパッケージを導入します。
途中インストールするかどうかの確認を求められるのでYを入力します。

```
sudo apt-get install docker.io
```

>
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  aufs-tools cgroupfs-mount libapparmor1
Suggested packages:
  btrfs-tools debootstrap lxc rinse
The following NEW packages will be installed:
  aufs-tools cgroupfs-mount docker.io libapparmor1
0 upgraded, 4 newly installed, 0 to remove and 47 not upgraded.
Need to get 3235 kB of archives.
After this operation, 15.6 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main aufs-tools armhf 1:3.2+20130722-1.1 [91.0 kB]
Get:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main cgroupfs-mount all 1.1 [4572 B]
Get:3 http://mirrordirector.raspbian.org/raspbian/ jessie/main libapparmor1 armhf 2.9.0-3 [58.1 kB]
Get:4 http://mirrordirector.raspbian.org/raspbian/ jessie/main docker.io armhf 1.3.3~dfsg1-2 [3082 kB]
Fetched 3235 kB in 3s (998 kB/s)     
Selecting previously unselected package aufs-tools.
(Reading database ... 116795 files and directories currently installed.)
Preparing to unpack .../aufs-tools_1%3a3.2+20130722-1.1_armhf.deb ...
Unpacking aufs-tools (1:3.2+20130722-1.1) ...
Selecting previously unselected package cgroupfs-mount.
Preparing to unpack .../cgroupfs-mount_1.1_all.deb ...
Unpacking cgroupfs-mount (1.1) ...
Selecting previously unselected package libapparmor1:armhf.
Preparing to unpack .../libapparmor1_2.9.0-3_armhf.deb ...
Unpacking libapparmor1:armhf (2.9.0-3) ...
Selecting previously unselected package docker.io.
Preparing to unpack .../docker.io_1.3.3~dfsg1-2_armhf.deb ...
Unpacking docker.io (1.3.3~dfsg1-2) ...
Processing triggers for man-db (2.7.0.2-5) ...
Processing triggers for systemd (215-17+deb8u2) ...
Setting up aufs-tools (1:3.2+20130722-1.1) ...
Setting up cgroupfs-mount (1.1) ...
Setting up libapparmor1:armhf (2.9.0-3) ...
Setting up docker.io (1.3.3~dfsg1-2) ...
Adding group `docker' (GID 115) ...
Done.
Processing triggers for libc-bin (2.19-18+deb8u1) ...
Processing triggers for systemd (215-17+deb8u2) ...


## dockerサービスを起動

サービスを起動します。
okが返ることを確認します。

```
sudo /etc/init.d/docker start
```

>
[ ok ] Starting docker (via systemctl): docker.service.

## 自動起動設定

自動起動するように登録します。
最近のdebian系では```insserv```コマンドを使用します。

```
sudo insserv /etc/init.d/docker
```

登録されたことを確認します。

```
sudo find /etc/ -name "*docker"
```

>
/etc/rc1.d/K01docker
/etc/rc2.d/S03docker
/etc/rc0.d/K01docker
/etc/rc6.d/K01docker
/etc/rc4.d/S03docker
/etc/init.d/docker
/etc/default/docker
/etc/bash_completion.d/docker
/etc/rc5.d/S03docker
/etc/rc3.d/S03docker

## Docker Imageを取得する

ARM版Fedoraのコンテナイメージを利用します。

```
docker pull armv7/armhf-fedora
```

>
Pulling repository armv7/armhf-fedora
37b1bd6dea8c: Download complete
Status: Downloaded newer image for armv7/armhf-fedora:latest


コンテナイメージが保存されていることを確認する

```
sudo docker images
```

>
REPOSITORY           TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
armv7/armhf-fedora   23                  37b1bd6dea8c        6 days ago          765.5 MB
armv7/armhf-fedora   latest              37b1bd6dea8c        6 days ago          765.5 MB


## 起動する

ホスト名:fedora1、コンテナ名:fedora1で起動する

```
sudo docker run -i -t --name fedora1 -h fedora1 armv7/armhf-fedora /bin/bash
```

## 終了させる

起動させたプロセスを終了させると停止する

```
exit
```

## デタッチする

```
CTRL+P -> CTRL+Q
```