Rasppberry Pi3でDockerを動かす
2,3年ESXiを用いて自宅サーバを運用していましたが、
- ほぼリソースを使っておらず無駄が多い
- 最近コンテナ仮想化に目覚めた
- RancherOSを使ってみたい
などの理由から Rasppberry-Pi3で自宅サーバをコンテナ仮想で再構築してみることにしました
なぜRancherOS?
- 構築の手間の省略
- 最近よく見る
- 15分あれば初期設定が終わる
- 公式リファレンスが読みやすい
microSDにRancherOSをぶち込む
imgをmicroSDに書き込みます 書き込み方はいろんなところで書かれているので省略
# IPの設定 アドレスは適宜書き換えてください $ sudo ros config set rancher.network.interfaces.eth1.address 172.68.1.100/24 $ sudo ros config set rancher.network.interfaces.eth1.gateway 172.68.1.1 $ sudo ros config set rancher.network.interfaces.eth1.mtu 1500 $ sudo ros config set rancher.network.interfaces.eth1.dhcp false $ sudo ros config set rancher.network.dns.nameservers 172.68.1.111 $ sudo ros system-docker restart network
どうやら デフォルトでSSHパスワード認証が許可されているみたいなので、 IPの設定さえしてしまえば終わりです
ID:パスワードはrancher:rancherで入れます
microSDにインストールしたRancherOSでDocker runができない問題に直面
$ docker run hello-world docker: Error response from daemon: rpc error: code = 2 desc = "oci runtime error: exec format error".
パーティションの問題らしいので修正してみます
fdiskで拡張しようとするとdevice busyとかのエラーで止まる
公式で対策が出ているので こちらを参照
パーティション修正をしてもまだrunができない
$ docker run hello-world FATA[0003] Error response from daemon: Cannot start container 0f0fa3f8e510e53908e6a459e817d600b9649e621e7dede974d6a65761ad39e5: exec format error
ググってみるとどうやらCPUのアーキテクチャの問題らしい。。。 raspberry-pi用のコンテナを用意してくれている方がいたので、今回はこちらを使わせて頂きます
$ docker run docker pull hypriot/armhf-hello-world
これでコンテナが動く状態になりました 何かしらコンテナを作る際にもこちらの方作成のalpineコンテナなどを利用することで、 raspberry pi3上で問題なく動作します