Dockerコマンド全集:イメージとコンテナの操作

Dockerコマンドの概要

Docker関連のコマンドは 크게二つに分類できます。一つはDockerコマンド、もう一つはDockerfileの命令です。Dockerコマンドは、操作対象によってDockerイメージ操作とDockerコンテナ操作に分別されます。以下では、使用頻度の高いコマンドをカテゴリ別に整理して解説します。

一、Dockerイメージの操作

イメージの取得と検索

# イメージの検索
docker search nginx

# イメージのダウンロード
docker pull nginx

# ローカルにあるイメージの一覧表示
docker images
docker image ls

イメージの削除

# 特定のイメージを削除
docker rmi nginx:latest

# タグなしのnoneイメージを全て削除
docker images | grep "<none>" | awk '{print $3}' | xargs docker rmi

# 強制削除
docker rmi -f myimage:1.0

イメージの実行

# 基本的な実行
docker run hello-world

# バックグラウンドで実行し、ポートマッピング
docker run -d -p 8080:80 nginx

# 対話型モードで実行
docker run -it ubuntu /bin/bash

イメージのタグ付けとプッシュ

# イメージに新しいタグを付与
docker tag myapp:1.0.0 registry.example.com/myapp:latest

# バージョンをlatestに変更
docker tag myapp:2.2.0 myapp:latest

# レジストリにプッシュ
docker push registry.example.com/myapp:latest

イメージの保存と読み込み

# イメージをtarファイルとして保存
docker save -o myapp-backup.tar myapp:1.0

# tarファイルからイメージをロード
docker load -i myapp-backup.tar

二、Dockerコンテナの操作

コンテナの一覧表示

# 実行中のコンテナを表示
docker ps

# 全ての状态的コンテナを表示
docker ps -a

# コンテナIDのみ表示
docker ps -aq

コンテナの起動と停止

# コンテナを停止
docker stop container-abc123

# コンテナを強制終了
docker kill container-abc123

# コンテナを起動
docker start container-abc123

# コンテナを再起動
docker restart container-abc123

コンテナの情報取得

# コンテナの詳細情報を表示
docker inspect container-abc123

# 実行中のプロセスを表示
docker top container-abc123

# コンテナの詳細情報をJSON形式で取得
docker inspect --format "{{.State.Pid}}" container-abc123

コンテナへのログイン

# execコマンドでコンテナに入る(推奨)
docker exec -it container-abc123 /bin/bash

# シェルのみのシンプルなアクセス
docker exec -it container-abc123 sh

ログの確認

# リアルタイムでログを表示
docker logs -f container-abc123

# タイムスタンプ付きで表示
docker logs -t container-abc123

# 特定の時間以降のログを表示
docker logs --since="2024-01-01" container-abc123

# 最後の100行を表示
docker logs --tail=100 container-abc123

ファイル操作

# コンテナからローカルにファイルをコピー
docker cp container-abc123:/app/config.yml ./

# ローカルからコンテナにファイルをコピー
docker cp ./data.txt container-abc123:/app/

コンテナの削除

# 単一のコンテナを削除
docker rm container-abc123

# 全てのコンテナを強制削除
docker rm -f $(docker ps -aq)

# 停止しているコンテナを全て削除
docker container prune

コンテナからイメージを作成

# コンテナを基に新しいイメージを作成
docker commit -m="初期設定完了" -a="developer" container-abc123 myapp:1.0

三、Dockerレジストリの操作

ログインと認証

# Docker Hubにログイン
docker login

# プライベートレジストリにログイン
docker login registry.example.com

# 認証情報の確認
cat ~/.docker/config.json

四、Dockerfileの命令

Dockerfileは用自己的イメージを構築するための設定ファイルです主な命令は以下の通りです:

# ベースイメージの指定
FROM ubuntu:20.04

# メンテナー情報
MAINTAINER developer@example.com

# イメージレイヤの説明
LABEL version="1.0" description="アプリケーションイメージ"

# シェルコマンドの実行
RUN apt-get update && apt-get install -y nginx

# 作業ディレクトリの設定
WORKDIR /app

# 環境変数の設定
ENV APP_ENV=production

# ホストからコンテナへのファイルコピー
COPY ./src /app/src

# ポートの公開
EXPOSE 8080

# コンテナ起動時に実行するコマンド
CMD ["nginx", "-g", "daemon off;"]

# エントリーポイントの定義
ENTRYPOINT ["java", "-jar", "app.jar"]

まとめ

これらのコマンドを組み合わせることで、Dockerイメージの取得からコンテナの起動、 管理までの workflow を効率的に進めることができます。特に実際の開発では、コンテナの再起動やログ確認の機会が多いため、各コマンドの使い方を覚えておくと便利です。

タグ: Docker docker-image docker-container Dockerfile containerization

5月21日 10:36 投稿