DockerでRaspbianコンテナを立ち上げる
Author: 水卜
Author: 水卜
Dockerを使って、ホストと異なるCPUアーキテクチャ(ARM)のRaspbianコンテナを実行する。
ホストPCはMacを使用。
ラズパイの開発環境やビルド環境として便利。
以下でraspbianイメージを配布している。
http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian_lite/archive/2020-02-14-13:49/
tarファイルをもとにイメージを作成。
$ wget http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian_lite/archive/2020-02-14-13:49/root.tar.xz
$ docker image import ./root.tar.xz raspbian-stretch-lite:2019-04-08
# imageが入っていることを確認
$ docker images | grep rasp
raspbian-stretch-lite 2019-04-08 fb9b0445ff2d 31 minutes ago 1.03GB
上記のDockerイメージはARMv7用のDockerイメージであるため、そのまま実行できない。
下記のqemu-user-staticを使うと、QEMUを使った異なるCPUアーキテクチャのバイナリ実行環境を用意してくれるため、ARMv7イメージも実行できるようになる。
https://github.com/multiarch/qemu-user-static
# 以下を実行することで、異なるCPUアーキテクチャのイメージを実行できるようになる
$ docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
$ docker images | grep qemu
multiarch/qemu-user-static latest f52fa63c8767 5 weeks ago 130MB
# ラズビアンのコンテナが立ち上がることが確認できる
$ docker run -it raspbian-stretch-lite:2019-04-08 bash
root@38dc30cda127:/# ls
bin boot dev etc home lib lost+found media mnt opt proc root run sbin srv sys tmp usr var
root@38dc30cda127:/# uname -m
# ARMv7
armv7l