2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

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

Posted at

#目的
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/設定したパスワード]を入力します。
image.png
③Flatの初期画面です。「Containers」メニューを選択します。
image.png
④下記のLAMPというDockerイメージは起動されていますが、
OSMCというDockerイメージは起動されてないことが分かります。
image.png

#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」について紹介したいと思います。
お休みなさい。^^&

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?