以下省略!

タイダルウ(ry ほぼ毎日1記事執筆運動実施中。 ※記事に広告(アフィリエイト)リンクを掲載している場合があります。

ScalewayのC1インスタンス(armv7l)でDockerを入れてみた

f:id:abyssluke:20170416131312p:plain:w200:leftARM CPUなScalewayのC1インスタンスでDockerを入れてみた。今運用しているサーバーはrita-ch.com(nginx+php-fpm)しか運用しておらずリソースが余って仕方なかった&話題のMastodonをDockerで立てられるかなぁと思ったので。
以下の手順はサーバー作成の際にUbuntuを選択した場合を想定している。

カーネルを変更する

デフォルトのカーネルでは必要なモジュールが入っていなくDockerが使えないので対応カーネルに変更する。

ScalewayのコントロールパネルのServersからDockerを使うサーバーを選択し、ADVANCEDの右側にあるShowをクリックする。
表示されたBOOT SCRIPTのカーネル名またはEditをクリックすると使用するカーネルが選択できるようになるので、そこからarmv7l 4.10.8 docker #1(執筆時点でのバージョンだが、dockerが付いているものであればよい)を選択し、✔を押す。
その後ON/OFFスイッチをクリックしHARD REBOOT→Power offで再起動する。
HARD REBOOTしているのは筆者環境ではどういうわけかrebootコマンドでうまく再起動しないため。もしかしたらrebootコマンド掛けた後にHARD REBOOTのほうがいいかもしれない。そういやシリアルコンソールもどういうわけかうまく動かないな…

Dockerをぶっこむ

王道な方法(get.docker.com)でインストールするが、念の為必要そうな物を手動でインストールする。不足があってもインストールスクリプトが自動的に入れてくれるが…(dirmngrとか)
インストール後はdockerグループに自分自身を入れて一般ユーザー権限でも実行できるようにする。usermod後は再ログインすべし。

$ sudo apt-get install apparmor arping aufs-tools btrfs-tools bridge-utils cgroup-lite ifupdown kmod lxc python-setuptools vlan
$ curl -sSL https://get.docker.com/ | sh
$ sudo usermod -aG docker hogehoge

ハローワールドで動作試験

ARM向けのコンテナイメージを配信しているarmhfレポジトリのhello-worldを実行する。通常のコンテナイメージ(x86_64)は動かないので注意。

$ docker run --rm armhf/hello-world
(hello-worldの初回起動時はここにイメージのダウンロード状況が出てくる)

Hello from Docker on armhf!
This message shows that your installation appears to be working correctly.
(以下略)

ちなみにARM向けのコンテナイメージやバリエーションはそんなに多くない。もし検索する時はDocker HubのWebからarmhfやarmv7lとかで検索してみるといいかも。