RaspberryPI起動と同時にDockerイメージを起動


目的

Flatの環境またDockerの環境が構築されている場合、RaspberyPiを起動した後、Dockerの特定イメージを自動で起動させる方法について話をしたいと思います。

1./etc/rc.localについて

OSが起動された後、何か実行したい処理をここに追加します。

2.既存のrc.localの中身を確認します。

「cat」コマンドでファイルの中身を確認します。
ここに処理を追加する場合は「exit 0」の前に追加します。
「exit 0」の後ろに追加した場合は正常に実行されません。

pi@raspberrypi:~ $ cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi
exit 0

3.Dockerイメージを起動するコマンドを追加します。

Dockerイメージを起動するコマンドの形式は下記の通りです。
行の末に「&」を必ず入れて置きましょう。
→追加した処理が正しく終わらないとOSの起動が止まっている可能性があります。

例)/usr/bin/docker start docker-image-name &

コマンドを追加したrc.localファイルの中身です。

pi@raspberrypi:~ $ cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi
/usr/bin/docker start LAMP &
exit 0

※前回Flatの環境で構築したLAMP環境のDockerイメージ名です。
前回記事:Flatを利用してLAMP環境構築

4.RaspberryPIを再起動します。

下記のコマンドを実行するとRaspberryPIが再起動されます。

pi@raspberrypi:~ $ sudo reboot

5.Flat環境へログインします。

①下記のアドレスをブラウザから入力してアクセスします。

http://[Raspberry PIのIPアドレス]:9000
または(モニターと直接繋がっている場合、下記のアドレスを利用してもOK)
http://localhost:9000

②アカウントは[admin/設定したパスワード]を入力します。

③Flatの初期画面です。「Containers」メニューを選択します。

④下記のLAMPというDockerイメージは起動されていますが、
OSMCというDockerイメージは起動されてないことが分かります。

6.その他

Dockerイメージを起動した後、Dockerイメージの中にあるコマンドを実行したい場合、
以下の形式で「/etc/rc.local」ファイルに追加します。

★注意事項★
Dockerイメージの起動コマンドの後に追加してください。

/usr/bin/docker exec LAMP /usr/bin/python /home/pi/mail.py &

※pythonコマンドでmail.pyプログラムを起動する例です。

終わりに

今までRaspberryPIを再起動したらFlatの画面でDockerのイメージを毎回起動ボタンを押さないとDockerが起動されなかったですが、これからは再起動すると自動でDockerイメージが起動されるようになりました。
少し役に立ちましたか?次回は上記の「mail.py」について紹介したいと思います。
お休みなさい。^^&