はじめに
Docker Desktopを起動するとコンテナが自動起動されて
いちいち停止するのめんどくさいなと思ったので調べてまとめてみました。
原因
ymlファイルでよく見るrestartの部分が原因らしい
restart: always
解決法
restartの部分をnoに書き換える
restart: no
このように書き換えることでコンテナが自動生成されることを防ぐことができました。
ドキュメントによるとDockerには再起動ポリシー(restart policy)という物があり
restart
にno(デフォルト)
、on-failure
、always
、unless-stopped
の4種類がある。
コンテナを自動的に再起動しないのはno
だけらしい。
Docker日本語ドキュメント
今回は「Docker Desktopを起動するとコンテナが自動起動される」ということを
防ぐ目的です。
わざわざコンテナ作り直すの嫌な時
そんな時はコマンドで解決できるらしい!
step1: alwaysになっているコンテナを取得します。
docker inspect -f "{{.Name}} {{.HostConfig.RestartPolicy.Name}}" $(docker ps -aq) | grep always
/hoge-db always
/hoge-minio always
/hoge-firebase always
こんな感じで出力されると思います。
step2:その中からnoにして自動起動してほしくないコンテナに以下のコマンドを使う
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されるのを防ぐ事ができる。
終わりに
今回初めて記事を書かせてもらいました。
「ここ違うよ~」とか「こうできるんじゃない?」とかあったら色々教えてください。
よろしくお願いします。🙇
最後まで読んでいただきありがとうございました。