RaspiへはDockerインストールができる
RaspiberyPiにDockerをインストールすることができます. 似たようなアーキテキチャのArmadillo-IoT G3へもインストールできるだろうと考え,インストーラスクリプトの中を見てみたら, armv7l-debian-jessie
とあったのでインストールできるかもしれません.
Armadillo-IoT G3は, Debian GNU/Linux 8 (jessie)
, armv7l
となっています.
Raspberryのサイトの記事DOCKER COMES TO RASPBERRY PIを参考に進めていきます.
Dockerがインストールできるようにkernelをコンパイルして,イメージの作成
通常のイメージではDockerがインストールできません.なので,下記のサポートサイトとドキュメントを参考にカーネルをコンパイルします.
- G3LへのDockerインストールについて
- G3Lの内容ですが,G3も参考になります.
- 第22章 Howto: 22.1. イメージをカスタマイズする
- こちらはG3のマニュアルです
- Armadillo-IoT G3 ドキュメント・ダウンロード
- ソースコード類
事前準備
atmarkユーザーをsudoersに登録
以前の記事を参考にsudoersに追加します.
apt-utilsをインストール
Dockerインストーラでもインストールしてくれるが,最初にしておく方が良いです.
$ sudo apt-get install apt-utils
Dockerをインストール
以下のコマンドを入力して,インストールをしていきます.
$ curl -sSL https://get.docker.com | sh
しばらく待ちます.
Client:
Version: 17.11.0-ce
API version: 1.34
Go version: go1.8.3
Git commit: 1caf76c
Built: Mon Nov 20 18:52:15 2017
OS/Arch: linux/arm
Server:
Version: 17.11.0-ce
API version: 1.34 (minimum version 1.12)
Go version: go1.8.3
Git commit: 1caf76c
Built: Mon Nov 20 18:44:49 2017
OS/Arch: linux/arm
Experimental: false
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:
sudo usermod -aG docker atmark
Remember that you will have to log out and back in for this to take effect!
WARNING: Adding a user to the "docker" group will grant the ability to run
containers which can be used to obtain root privileges on the
docker host.
Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
for more information.
インストールできました!
Hello Worldで動作確認
docker run armhf/hello-world
コマンドで動作確認をします.
$ sudo docker run armhf/hello-world
Unable to find image 'armhf/hello-world:latest' locally
latest: Pulling from armhf/hello-world
a0691bf12e4e: Pull complete
Digest: sha256:9701edc932223a66e49dd6c894a11db8c2cf4eccd1414f1ec105a623bf16b426
Status: Downloaded newer image for armhf/hello-world:latest
Hello from Docker on armhf!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker Hub account:
https://hub.docker.com
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
無事に動作しているようです.
コンテナの確認
docker ps -a
コマンドで確認します.
$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b63820b9a16a armhf/hello-world "/hello" 6 minutes ago Exited (0) 6 minutes ago pensive_shaw
コンテナの削除
docker rm {CONTAINER_ID or NAME}
コマンドでコンテナを削除します.
$ sudo docker rm pensive_shaw
pensive_shaw
イメージを確認
docker images
コマンドで確認
$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
armhf/hello-world latest d40384c3f861 14 months ago 1.64kB
イメージを削除
docker rmi {IMAGE_ID}
コマンドで削除します.
$ sudo docker rmi d40384c3f861
Untagged: armhf/hello-world:latest
Untagged: armhf/hello-world@sha256:9701edc932223a66e49dd6c894a11db8c2cf4eccd1414f1ec105a623bf16b426
Deleted: sha256:d40384c3f8619d0976e52dd6aa13e6037e16698205a95e87d5d468dc12753630
Deleted: sha256:defe452159cc43499944129ea74482a1fdfbd67d1deac48061babcc93a740d6d
おわりに
Armadillo-IoT G3 は,標準提供のイメージではDockerをインストールすることができません.しかし,カスタムイメージを作成することでインストール可能となります.
これで, Azure IoT Edge v2のインストール実験に近づきました.