インフラは筋肉で構築するもの

サーバとネットワークを筋肉でどうにかします

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上で問題なく動作します