0
0

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 1 year has passed since last update.

私的サーバー構築日誌:Dockerコンテナを自動起動する

Posted at

能書き

私的サーバー構築日誌:仕切り直しからの自宅サーバー構築の続きです。

以前Dockerコンテナを作成しましたが、Dockerコンテナはマシンを再起動すると停止してしまいます。マシンを起動した時に自動起動するような設定を模索しました。

目標

  • マシン再起動時に、指定のDockerコンテナを自動起動する。
    • Dockerコンテナは docker compose で作成。

参考文献

概要

Dockerにはrestartというオプションがある模様。恥ずかしながら知りませんでした。参考文献参照。

これがわかれば、後はやってみるだけですな。

やってみる

Dockerコンテナの置き場所

まずは、今後を見据えて細かい決め事をします。

今後、restart: unless-stoppedの設定でDockerコンテナを複数立てる事になると思われます。
その置き場所は、管理者アカウントのhomeディレクトリにdocker-コンテナ名ディレクトリを作成して置く事にします。

テスト用Dockerコンテナ作成

サーバー
cd
mkdir -p docker-test
cd docker-test
cat <<___ >docker-compose.yml
version: '3.8'
services:
  test:
    image: ubuntu:22.04
    build: .
    tty: true
    restart: unless-stopped
___

今回はDockerfileは不要です。このdocker-compose.ymlだけでコンテナを起動します。

サーバー
docker compose up -d

確認。

サーバー
docker compose ls

例えば管理者ユーザー名がadminの場合、下記のようになります。

サーバー
$ docker compose ls
NAME                STATUS              CONFIG FILES
docker-test         running(1)          /home/admin/docker-test/docker-compose.yml
サーバー
sudo reboot

マシン再起動後、ログインして様子を見ます。

サーバー
docker compose ls

確かにDockerコンテナが自動起動しているようです。

サーバー
$ docker compose ls
NAME                STATUS              CONFIG FILES
docker-test         running(1)          /home/admin/docker-test/docker-compose.yml

念の為、Dockerコンテナにログインしてみましょう。

サーバー
cd
cd docker-test
docker compose exec test /bin/bash
コンテナ内
exit

ここで、Dockerコンテナをstopしてみます。

サーバー
docker compose stop

確認。

サーバー
docker compose ls -a

止まったようです。

サーバー
$ docker compose ls -a
NAME                STATUS              CONFIG FILES
docker-test         exited(1)           /home/admin/docker-test/docker-compose.yml

この状態でマシンを再起動してみます。

サーバー
sudo reboot

今度はDockerコンテナは停止している筈。ログインして様子を確認します。

サーバー
docker compose ls -a

確かに停止していました。

サーバー
$ docker compose ls -a
NAME                STATUS              CONFIG FILES
docker-test         exited(1)           /home/admin/docker-test/docker-compose.yml

確認できたら、綺麗さっぱり後始末しましょう。

サーバー
cd
cd docker-test
docker compose down --rmi all --volumes
cd ..
rm -r docker-test

仕舞い

マシン再起動時に、指定のDockerコンテナを自動起動できるようになりました。停止した場合には自動起動しません。理想的です!

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?