コンテンツにスキップ

Dockerコマンド

コンテナ化のための包括的なDockerコマンドとワークフロー(全プラットフォーム対応)。

基本コマンド

コマンド説明
docker --versionDocker のバージョンを表示
docker infoシステム全体の情報を表示
docker helpDockerコマンドのヘルプを表示
docker imagesすべての画像を一覧表示
docker ps稼働中のコンテナを一覧表示
docker ps -aすべてのコンテナ(実行中および停止中)を一覧表示
docker pull <image>レジストリからイメージをプルする
docker run <image>イメージからコンテナを実行する
docker stop <container>実行中のコンテナを停止する
docker start <container>停止したコンテナを起動する
docker restart <container>コンテナを再起動する
docker rm <container>コンテナを削除する
docker rmi <image>画像を削除

コンテナ管理

コマンド説明
docker run -d <image>コンテナをデタッチモードで実行
docker run -it <image>コンテナを対話的に実行
docker run -p 8080:80 <image>ポート 8080 をコンテナのポート 80 にマッピングする
docker run -v /host:/container <image>ボリュームをマウント
docker run --name <name> <image>カスタム名でコンテナを実行
docker exec -it <container> bash実行中のコンテナでbashを実行
docker logs <container>コンテナログを表示
docker logs -f <container>コンテナのログを追跡
docker inspect <container>コンテナの詳細を検査
docker statsコンテナのリソース使用状況を表示
docker top <container>コンテナ内で実行中のプロセスを表示

イメージ管理

コマンド説明
docker build -t <name> .Dockerfileからイメージをビルド
docker build -t <name>:<tag> .タグ付きのイメージをビルド
docker tag <image> <new-name>画像にタグ付けする
docker push <image>レジストリにイメージをプッシュ
docker save <image> > file.tartar ファイルに画像を保存
docker load < file.tartarファイルから画像を読み込む
docker history <image>画像の履歴を表示
docker search <term>レジストリ内の画像を検索

Docker Compose

コマンド説明
docker-compose upComposeファイルで定義されたサービスを開始
docker-compose up -dデタッチモードでサービスを起動
docker-compose downコンテナを停止して削除する
docker-compose buildサービスの構築または再構築
docker-compose logsすべてのサービスのログを表示
docker-compose psコンテナをリスト
docker-compose exec <service> bashサービス内でコマンドを実行
docker-compose pull最新のイメージをプル
docker-compose restartサービスを再起動

ネットワーク管理

コマンド説明
docker network lsネットワークの一覧
docker network create <name>ネットワークを作成する
docker network rm <name>ネットワークを削除
docker network inspect <name>ネットワークの詳細を検査
docker run --network <name> <image>特定のネットワーク上でコンテナを実行

ボリューム管理

コマンド説明
docker volume lsボリュームをリスト
docker volume create <name>ボリュームを作成
docker volume rm <name>ボリュームを削除
docker volume inspect <name>ボリュームの詳細を確認
docker volume prune未使用のボリュームを削除

一般的なワークフロー

開発ワークフロー

# Build and run application
docker build -t myapp .
docker run -p 3000:3000 myapp

# Development with volume mounting
docker run -p 3000:3000 -v $(pwd):/app myapp

# Using Docker Compose for development
docker-compose up --build

本番デプロイ

# Build production image
docker build -t myapp:prod .

# Tag for registry
docker tag myapp:prod registry.com/myapp:latest

# Push to registry
docker push registry.com/myapp:latest

# Deploy on production server
docker pull registry.com/myapp:latest
docker run -d -p 80:3000 --name myapp-prod registry.com/myapp:latest

コンテナデバッグ

# Check container logs
docker logs -f container-name

# Execute shell in running container
docker exec -it container-name bash

# Inspect container configuration
docker inspect container-name

# Check resource usage
docker stats container-name

ベストプラクティス

Dockerfileの最適化

  • マルチステージビルドを使用してイメージサイズを削減
  • 命令を適切に並べてビルドキャッシュを活用
  • 具体的なベースイメージタグを使用し、latestを避ける
  • レイヤーの数を最小限に抑える
  • 不要なファイルを除外するために.dockerignoreを使用

セキュリティ

  • 非rootユーザーでコンテナを実行
  • 可能な限り公式のベースイメージを使用
  • ベースイメージを定期的に更新
  • イメージの脆弱性をスキャン
  • コンテナのリソース(CPU、メモリ)を制限

パフォーマンス

  • 適切なベースイメージを使用(サイズ縮小のためalpine)
  • レイヤーキャッシングを最適化
  • コンテナのヘルスチェックを使用
  • コンテナのリソース使用状況を監視
  • 永続データにはボリュームを使用

本番デプロイ

  • オーケストレーションツールを使用(Docker Swarm、Kubernetes)
  • 適切なログ記録と監視を実装
  • 機密データのシークレット管理を実施
  • 自動バックアップを設定
  • ローリングアップデートを実装

Note: Some placeholders (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13) were left empty as no specific text was provided for translation. I’ve maintained the structure and formatting as requested.