Raspberry Pi 4B をDocker実行環境として常時起動で運用するときの設定をまとめます.
microSDにイメージを書き込む
Raspberry Pi Imagerを用いてmicroSDにイメージを書き込みます.
raspi-config で設定
sudo raspi-config
パスワードの変更
セキュリティのために,pi
ユーザーのパスワードを変更します.
WiFiの設定
ネットワークに接続するためにWiFiを設定します.
タイムゾーンの設定
5 Localization Options
よりJSTに設定します.
Dockerのインストール
curl https://get.docker.com > install.sh cat install.sh sudo sh install.sh sudo usermod -aG docker $USER
Install Docker Engine on Debian | Docker Documentation
Post-installation steps for Linux | Docker Documentation
Grafanaのインストール (任意)
docker run -d --restart always -p 3000:3000 --name grafana -v grafana-storage:/var/lib/grafana grafana/grafana:latest
このコマンド1個でGrafanaがインストールできるで,Dockerはとても便利です.
cronで定期的に再起動
sudo crontab -e
0 0 * * * /sbin/shutdown -r now
真夜中に自動的に再起動されるので便利です.cronのPATHは限定的のため,絶対パスでコマンドを指定するべきみたいです*1.
Overlay File Systemの有効化
microSDをread-onlyにすることで,Raspberry Piの電源をいつでも気軽に抜けるようにし,悪意あるユーザーが仮に侵入しても*2設定を簡単に変更できないようにすることで,より堅牢なシステムを目指します.
raspi-config - Raspberry Pi Documentation
sudo raspi-config
Performance > P3 Overlay File System より有効にします.
しかし,overlay-fsを有効にすると,Docker Engineが起動しなくなるので,ひとまずoverlay-fsは無効にして運用することにします.解決方法が分かれば追記します.
*1:What is the 'working directory' when cron executes a job? - Unix & Linux Stack Exchange
*2:暇を持て余した自分が,Raspberry Piに余計なおせっかいをかけて壊すという意味です.