Dockerの概念と操作をよく忘れるので、自分用メモ。兼記事としてまとめ。
1. 一覧表示
操作対象のname/IDと状態を確認する。
-
イメージ一覧:
docker images -
イメージ一覧(全部):
docker image ls -a -
コンテナ一覧:
docker ps -
コンテナ一覧(全部):
docker container ls -a,docker ps -a
※イメージは「設計図」、コンテナは「そのイメージから起動した実行体」
例えるならimage→クラス、container→実行中インスタンス
2. コンテナ操作
-
コンテナを停止する:
docker stop <name or ID>- コンテナ自体は削除されずに残る
-
起動する:
docker start <name or ID>- コンテナが存在している場合の起動コマンド
-
コンテナを削除する:
docker rm -f <name or ID>- 再起動不可。再び起動する場合は
docker runが必要。
- 再起動不可。再び起動する場合は
※コンテナの状況は一覧表示コマンドで確認。
※IDは他と識別できる最初の数文字だけでOK
3. コンテナ起動(docker run)
イメージを指定してコンテナを起動する。オプションがいっぱいある。
-
基本形:これベースでオプションつける。
image-nameは基本最後docker run <image-name>
-
コンテナに名前付ける:
--name <任意のコンテナ名>- これがないと操作するのが面倒になるのでほぼ必須
-
ポートの紐付け:
-p <ホストから見たポート番号>:<コンテナ内のポート番号>
-
ディレクトリマウント:
-v <ホストのパス>:<コンテナ内のパス>
-
バックグラウンド起動:
docker run -d <image-name>
-
サーバー再起動時にコンテナも自動再起動:
docker run -d --restart always <image-name>- 手動で停止した場合は再起動しない:
--restart unless-stopped
-
コンテナ終了時にコンテナを自動削除:
docker run --rm <image-name>
-
起動時にコンテナ内のターミナルを起動:
docker run -it <image-name>
-
起動中のコンテナのターミナルにアクセス:
docker attach <container-name/ID>- 注意:Ctrl+Cで終了するとコンテナ自体が停止する場合あり。
4. docker runのサンプル
docker run -d -p 8080:8080 --restart always --gpus=all \
--name open-webui \
-v open-webui:/app/backend/data \
-v open-webui-ollama:/root/.ollama \
ghcr.io/open-webui/open-webui:main
※--gpus=allはGPU連携
5. buildの手順
- Dockerfileを作成する:<略>
- Dockerイメージをbuildする:
docker build -t <名前> <対象ディレクトリ>- 例:
docker build -t my-docker . - 名前は英数小文字のみ
- Dockerfileのある場所で実行する
- buildできたかを確認する:
docker image ls