← hyperanoka.com

docker関連でよく使うコマンド

/docker_command · 最終更新 2026-08-21 02:50

Docker 基本コマンド (docker)

イメージ操作

  sudo docker search <イメージ名>
※デフォルトで https://registry-1.docker.io/v2/ を参照します。
  sudo docker pull <イメージ名>

docker run 実行時にローカルになければ自動で取得(pull)されます。

  sudo docker build -t <イメージ名>:<タグ> <Dockerfileのあるパス>
  # 例: カレントディレクトリのDockerfileからビルド
  sudo docker build .
  sudo docker images
  sudo docker rmi <イメージID or イメージ名>

コンテナ操作

  # 起動中のコンテナのみ
  sudo docker ps

  # 停止中も含めたすべてのコンテナ
  sudo docker ps -a
  # 単純起動(処理が終わると即停止する)
  sudo docker run <イメージ名>

  # コンテナ内に入って操作する(インタラクティブモード)
  sudo docker run -it <イメージ名> bash
  sudo docker start <コンテナID or コンテナ名>
  docker exec -it <コンテナ名 or ID> /bin/bash
  # リアルタイムログを表示(末尾100行から追尾)
  docker logs -f --tail=100 <コンテナID or コンテナ名>
  sudo docker rm <コンテナID or コンテナ名>
※IDや名前は他と被らなければ前方数文字の指定でも動作します。

Docker Compose コマンド (docker compose)

※新しいのDockerでは docker-compose ではなく docker composeコマンド。

コンテナの管理

  sudo docker compose build
  # バックグラウンド実行 (-d)
  sudo docker compose up -d
※ローカルにイメージがない場合は自動でビルドされます(upbuild + start)。
  docker compose down
docker compose up -d で起動した環境は down で一括停止・削除するのが基本です。
  # 起動中のみ
  sudo docker compose ps

  # 停止中も含めて確認
  sudo docker compose ps -a

自動起動設定 (docker-compose.yml)

コンテナごとの restart 属性で制御します。

services:
  app:
    image: nginx
    restart: "always" # ホスト起動時やクラッシュ時に自動再起動する
  db:
    image: postgres
    restart: "no"     # 自動再起動しない(デフォルト)

ホスト ⇄ コンテナ間のファイルコピー (docker cp)

# コンテナからホストへコピー
sudo docker cp <コンテナ名>:<コンテナ内のパス> <ホスト側の保存先パス>

# 例:
sudo docker cp osect_sensor_edge_cron_1:/var/log/app.log ./app.log

永続化・ボリューム管理 (docker volume)

コンテナ内のデータはコンテナ破棄時に消えるため、データの永続化にはボリュームを使用します。

  docker volume create <ボリューム名>
  docker volume ls
  docker volume inspect <ボリューム名>
  docker volume rm <ボリューム名>
  docker volume prune

Docker ネットワーク (docker network)

ネットワークの種類(ドライバー概要)

ネットワーク操作コマンド

  docker network ls
  docker network create <ネットワーク名>
  docker network inspect <ネットワーク名>
  # 接続
  docker network connect <ネットワーク名> <コンテナ名>

  # 切断
  docker network disconnect <ネットワーク名> <コンテナ名>
  docker network rm <ネットワーク名>

ローカルのdockerをきれいにする

  # 宙に浮いているものを削除
  docker image prune
  
  # 使っていないものをすべて削除
  docker image prune -a
  
  # 時間指定
  docker image prune -a --filter "until=24h"
  # 停止しているコンテナを削除
  docker container prune
  
  # 時間指定
  docker container prune --filter "until=24h"
  # 未使用のボリュームを削除
  docker volume prune
  
  # ラベル指定(keep ラベルがないボリュームのみを削除例)
  docker volume prune --filter "label!=keep"
  # 未使用のネットワークを削除
  docker network prune
  
  # 時間指定
  docker network prune --filter "until=24h"
  # ボリューム以外
  docker system prune
  
  # ボリューム以外含め
  docker system prune --volumes