ブログ

Armadillo-IoT G3LへのDockerインストール

at_takuma.fukuda
2019年9月5日 15時13分

Dockerとは

Dockerとはコンテナと呼ばれるOSレベルの仮想化環境を提供するソフトウェアです。

Dockerを使うメリット

Armadilloを使用した製品の開発において、
Dockerコンテナ上でパッケージのインストールやアプリケーションの開発を行えば、
複数のArmadilloへの展開が容易となります。

Docker-CEについて

DockerにはEnterprise Edition(以下Docker-EE)およびComunity Edition(以下Docker-CE)が存在します。
EnterpriseEditionは有償ですが、サポートや動作保証を受けることが出来ます。
しかし、Docker-EEの動作保証OSにはDebianが含まれていないため、
ArmadilloでDockerを使用する場合は、Docker-CEをインストールすることとなります。


実際にArmadillo-IoT G3LにDocker-CEをインストールするための手順をご説明します。

*Dockerの公式ドキュメントに基づいてインストールを進めます。
https://docs.docker.com/install/linux/docker-ce/debian/

1.古いバージョンのdocker関連パッケージがインストールされていたらすべて削除する。

apt-get remove docker docker-engine docker.io containerd runc

2.Dockerのダウンロードやインストールの準備に必要なパッケージをあらかじめ取得する。

apt-get update
apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg2 \
    software-properties-common

3.公開鍵を入手する

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

4.dockerのリポジトリをaptのリポジトリリストに追加する

add-apt-repository \
   "deb [arch=armhf] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"

5.docker-ceを使用するためのパッケージ3つをインストールする。

docker-ce(docker-ce本体)
docker-ce-cli(docker-ceを操作するためのコマンドラインツール)
containerd.io(docker-ceの機能を実現するためのコンポーネント)


apt-get install docker-ce docker-ce-cli containerd.io

6.インストールが成功したことを確認する

以下のコマンドを入力するとインストールされたDockerのバージョンが表示されます。

docker -v

7.実際にDockerを動作させてみる

以下のコマンドを入力すると、hello-worldというコンテナイメージをダウンロードして実行します。

docker run hello-world

正常に実行されると、以下のようなメッセージが表示されます。

Hello from Docker!
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.
    (arm32v7)
 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.

次回はこのDocker上にコンテナイメージを展開して実機に接続したUSBデバイスにアクセスするアプリケーションを開発する予定です。