0
1

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がたくさん起動してた件 〜Difyの場所を特定して止めるまで〜

0
Posted at

気づいたらDockerがたくさん起動してた件

どうも、拓田です。
docker ps を打ったら、身に覚えのないコンテナがたくさん起動していました。

調べてみたら、以前インストールした Dify のコンテナ群でした。
「PCを起動するたびに勝手に立ち上がっていた」ということが判明したので、
調査から停止までの流れをまとめました。

状況

docker ps を実行したところ、こんな感じでたくさんのコンテナが起動していました。

CONTAINER ID   IMAGE                              NAMES
5ebd0cc25caa   nginx:latest                       docker-nginx-1
01e5ece0e858   langgenius/dify-api:0.6.13         docker-api-1
a7c6b9ef43e3   langgenius/dify-api:0.6.13         docker-worker-1
915d1466318a   langgenius/dify-web:0.6.13         docker-web-1
3cd59a080685   semitechnologies/weaviate:1.19.0   docker-weaviate-1
25177f429648   langgenius/dify-sandbox:0.2.1      docker-sandbox-1
0cd7a6fbd1c5   ubuntu/squid:latest                docker-ssrf_proxy-1
6cfae9c1aacf   redis:6-alpine                     docker-redis-1
e2d852e392f4   postgres:15-alpine                 docker-db-1

コンテナ名が docker-〇〇 という形式で、これは全部 Dify の構成要素でした。

コンテナ名 役割
docker-nginx-1 Difyへのアクセスを受け付けるサーバー
docker-api-1 DifyのAPIサーバー
docker-worker-1 Difyのバックグラウンド処理
docker-web-1 Difyの画面(フロントエンド)
docker-weaviate-1 AIが使うベクターデータベース
docker-sandbox-1 コード実行用の隔離環境
docker-ssrf_proxy-1 セキュリティ用プロキシ
docker-redis-1 キャッシュ・キュー用DB
docker-db-1 PostgreSQL(メインDB)

問題:docker-compose.ymlが見つからない

Difyはdocker-composeで起動するので、普通は docker compose down で止められます。
ただし、それにはインストールしたフォルダに移動する必要があります。

フォルダを探そうとしましたが見つからず…

# Cドライブ全体を探しても出てこなかった
Get-ChildItem -Path C:\ -Recurse -Filter "docker-compose.yml" -ErrorAction SilentlyContinue

解決策:docker inspect でフォルダを特定する

コンテナ自体に「どこのdocker-composeから起動したか」という情報が記録されています。
以下のコマンドで確認できました。

docker inspect docker-nginx-1 | findstr "working_dir"

実行結果:

"com.docker.compose.project.working_dir": "C:\\Users\\nisit\\dify\\docker",

C:\Users\nisit\dify\docker が正解でした。

Difyを停止する

フォルダがわかったので、そこに移動して docker compose down を実行します。

cd C:\Users\nisit\dify\docker
docker compose down

これでDifyの全コンテナが止まり、PC再起動後も自動起動しなくなります

なぜPC起動のたびに自動起動していたのか?

Difyの docker-compose.yml には各コンテナに以下の設定が入っています。

restart: always

この設定があると、Dockerが起動するたびにコンテナも自動で立ち上がります。

設定値 動作
restart: always PCを再起動しても自動で起動する
restart: unless-stopped 手動で止めない限り再起動する
restart: no(省略時) 自動起動しない

docker compose down で停止すると、次回PC起動時には自動起動しなくなります。

まとめ

  • docker-composeファイルの場所がわからなくても、docker inspect でフォルダを特定できる
  • com.docker.compose.project.working_dir ラベルにインストール先が記録されている
  • restart: always が設定されているコンテナはPC起動時に自動で立ち上がる
  • 止めるには該当フォルダで docker compose down を実行する

知らないうちにDockerがたくさん動いていると、PCのメモリをじわじわ使われてしまいます。
docker ps で定期的に確認する習慣をつけるといいかもしれません。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?