OSの再起動でDockerコンテナを自動起動

Ubuntuのスタートアップに自動起動

Posted by めろん on 2024/12/11 22:52

Ubuntuの起動、再起動でDockerコンテナを起動したい

まあ、いままでどうしていたのかというと、手動で叩いて起動していました。


これが面倒で、よく忘れるということで自動化したいなと思い一寸調べました。
すると以下のように記載すればいいということがわかりました

/etc/systemd/system/[設定ファイル名]

端的に言えば「systemctl」のサービスとして設定するだけのようです。
ディレクトリの「/etc/systemd/system/」の下に実行したい設定ファイルを置く感じですかね。

今回の例では、みんな「auto_shell.service」というファイル名で記載していますので
それに倣って書きます。

中身はこんな感じ。

[Unit]
Description=[好きな名前]
After=network.target docker.socket
Requires=docker.socket

[Service]
User=[ユーザ名]
ExecStart=[シェルスクリプトのフルパス]
Restart=always
type=simple

[Install]
WantedBy=multi-user.target

間違っている部分があるかもしれませんが、ご容赦を。

簡単に説明するとOSのネットワークサービスとDockerのソケットが使えるようになるまで待ってから
指定したシェルスクリプトを実行する、ということになります。

起動ユーザとシェルのフルパスのスクリプトパスを記載してください。
設定するところは基本的に上記部分です。

この設定は指定したシェルスクリプトを起動するところまで記載します。
Dockerの起動設定などはシェルスクリプトパスに記載します。
これでOK

設定を反映する

sudo systemctl enable [設定ファイル名]


でまずは設定し、systemctl がこの設定を有効にします。
但しリロードするまではOSに反映されません。

設定を削除する

sudo systemctl disable [設定ファイル名]


上記コマンドでdisableにできます。
簡単ですね。

設定をリロードする

systemctlに反映させる場合は


sudo systemctl daemon-reload

で設定を反映させます。
デーモンですね。
Windowsでいうところの「サービス」にあたります。

状態を確認する

sudo systemctl status [設定ファイル名]


で確認することができます。

とりあえず、これでOSを再起動した時にコンテナが起動できるようになりました\(^_^)/

コンテナの起動方法についてはここでは解説していませんので悪しからず。

以上。(`・ω・´)ゞ