10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Docker Desktopでコンテナが自動的にstartされるのを防ぎたい!

Posted at

はじめに

Docker Desktopを起動するとコンテナが自動起動されて
いちいち停止するのめんどくさいなと思ったので調べてまとめてみました。

原因

ymlファイルでよく見るrestartの部分が原因らしい

docker-compose.yml
restart: always

解決法

restartの部分をnoに書き換える

docker-compose.yml
restart: no

このように書き換えることでコンテナが自動生成されることを防ぐことができました。

ドキュメントによるとDockerには再起動ポリシー(restart policy)という物があり
restartno(デフォルト)on-failurealwaysunless-stoppedの4種類がある。
コンテナを自動的に再起動しないのはnoだけらしい。
Docker日本語ドキュメント

今回は「Docker Desktopを起動するとコンテナが自動起動される」ということを
防ぐ目的です。

わざわざコンテナ作り直すの嫌な時

そんな時はコマンドで解決できるらしい!

step1: alwaysになっているコンテナを取得します。

step1
docker inspect -f "{{.Name}} {{.HostConfig.RestartPolicy.Name}}" $(docker ps -aq) | grep always
step1-出力結果
/hoge-db always
/hoge-minio always
/hoge-firebase always

こんな感じで出力されると思います。

step2:その中からnoにして自動起動してほしくないコンテナに以下のコマンドを使う

step2
docker update --restart=no /hoge-db

このようにして特定のコンテナを自動起動しないようにできます。
参考記事:https://www.pressmantech.com/tech/6522#comment-97436

なんなら全部のコンテナ自動起動にしなくていいよーって時

以下のコマンドを行うことで、すべてのコンテナをnoにできます。

 docker ps -aq | xargs -I {} docker update --restart=no {}

まとめ

・restart(再起動ポリシー)をnoにすることで、Docker Desktopでコンテナが自動的に
startされるのを防ぐ事ができる。

終わりに

今回初めて記事を書かせてもらいました。
「ここ違うよ~」とか「こうできるんじゃない?」とかあったら色々教えてください。
よろしくお願いします。🙇

最後まで読んでいただきありがとうございました。

10
6
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
10
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?