Systemd と Docker で簡単にサービスを定義するととても捗る件

Docker便利ですよね。使ってますか?

Dockerで常時起動のサービスを作りたいと思った時、選択肢はたくさんあります。
K8s, Docker Swarm…このあたり使えば、いい感じにサービスを管理できます。

でも今は、クラスタなんていらない、もっとカジュアルにホームサーバでサービス起動したい!
docker で起動時に restart=always を付けてもいいけど、いまいち管理がしにくい…!
そんな時は systemd でサクッとサービス定義しちゃいましょう。

ここでは、/home/services/ 以下に(サービス名)のディレクトリを作成して、docker-compose.yml を作成することを想定しています。
ごみ処理とか、環境変数読み込む処理とか入れてもいいのですが、今回は最低限で行きます。

これを、/etc/systemd/system/compose-service@.service というファイル名で作成し…
/home/services/(サービス名)/docker-compose.yml に、サービスを記述…
すると、

で起動できちゃいます。すごく便利。
もちろん、systemd なので、

で自動起動にできます。いい感じ。
また、もちろん、systemd なので…

でログも見れます。いい感じ。

あと、ほかのサービスと同様に、systemd のUnitファイルで依存関係をかけば、ちゃんと起動順序も制御できます! とっても、いい感じ!

Spread the love
  •  
  •  
  •  
  •  

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です