Dockerとは

Dockerは、アプリケーションをコンテナと呼ばれる隔離環境で実行・管理するためのプラットフォーム。

  • コンテナ型仮想化 VM(仮想マシン)のようにゲストOSを立ち上げず、ホストOSのカーネルを共有してプロセスとして動作するため、起動が高速でリソース消費が極めて少ない。
  • 環境の一貫性(Portability) アプリケーションコード、ランタイム、システムツール、ライブラリなどを「イメージ」として一つにパッケージ化する。これにより、開発・検証・本番環境での差異(環境依存のトラブル)を排除できる。
  • Infrastructure as Code (IaC) Dockerfile というテキストファイルでインフラ構成を定義・管理できるため、バージョン管理やCI/CD(継続的インテグレーション/デリバリー)との親和性が高い。

1. コンテナのライフサイクル管理

コマンド説明
docker run [image]新しいコンテナを作成して起動
docker run -d -p [host_port]:[container_port] --name [name] [image]バックグラウンド実行(-d)、ポートフォワーディング指定(-p)、名前指定で起動
docker start [container]停止中のコンテナを起動
docker stop [container]実行中のコンテナを停止
docker restart [container]コンテナを再起動
docker rm [container]停止中のコンテナを削除
docker rm -f [container]実行中のコンテナを強制削除
docker ps実行中のコンテナ一覧を表示
docker ps -a停止中を含む全コンテナ一覧を表示

2. イメージ管理

コマンド説明
docker build -t [name]:[tag] .カレントディレクトリのDockerfileからイメージをビルド
docker pull [image]レジストリからイメージを取得
docker push [image]レジストリへイメージをアップロード
docker imagesローカルのイメージ一覧を表示
docker rmi [image]イメージを削除
docker tag [source_image] [target_image]イメージに新しいタグを付与
docker image prune未使用(dangling)のイメージを一括削除

3. コンテナの操作・デバッグ

コマンド説明
docker logs [container]コンテナのログを表示
docker logs -f [container]コンテナのログをリアルタイムで追跡(tail -fと同様)
docker exec -it [container] /bin/bash実行中のコンテナ内でBashシェルを対話モードで起動
docker exec -it [container] sh上記のsh版(Alpine Linux等で有効)
docker cp [host_path] [container]:[container_path]ホストからコンテナへファイルをコピー
docker cp [container]:[container_path] [host_path]コンテナからホストへファイルをコピー
docker inspect [container]コンテナの詳細情報(IP、マウント設定等)をJSONで表示
docker statsコンテナのリソース使用状況(CPU, メモリ等)をリアルタイム表示

4. ネットワークとボリューム

コマンド説明
docker network lsネットワーク一覧を表示
docker network create [network]新しいネットワークを作成
docker network connect [network] [container]コンテナをネットワークに接続
docker volume lsボリューム一覧を表示
docker volume create [volume]新しいボリュームを作成
docker volume rm [volume]ボリュームを削除
docker volume inspect [volume]ボリュームの詳細情報を表示

5. システム・クリーンアップ

コマンド説明
docker system dfDockerが使用しているディスク容量を表示
docker system prune停止中のコンテナ、未使用ネットワーク、danglingイメージを一括削除
docker system prune -a上記に加え、使用されていない全イメージも削除(注意が必要)
docker volume prune未使用のボリュームを一括削除

6. Docker Compose

コマンド説明
docker compose up -dコンテナを作成してバックグラウンドで起動
docker compose up --buildイメージを再ビルドしてから起動
docker compose downコンテナを停止し、ネットワーク等を削除
docker compose down -vコンテナ停止時にボリュームも削除
docker compose startサービスを起動(コンテナ作成済みの場合)
docker compose stopサービスを停止
docker compose logs -f全サービスのログをリアルタイム表示
docker compose ps定義されたサービスの状態一覧を表示
docker compose exec [service] [command]指定したサービス内でコマンドを実行