Dockerを使い始めたばかりの方は、「どんなコマンドがあるの?」「何をするときにどのコマンドを使えばいいの?」と迷うことが多いでしょう。
Dockerとは、アプリケーションを「コンテナ」という仮想的な箱に入れて動かすソフトウェアです。
このコンテナを操作するには、専用のコマンドを覚える必要があります。
この記事では、Dockerでよく使われるコマンドを目的別にわかりやすく紹介します。
初心者の方でも迷わないように、それぞれのコマンドがどんなときに使うものなのかも一緒に説明していきます。
この記事で学べること
- Dockerの基本的なコマンドの使い方
- 目的に応じたコマンドの選び方
- 実際の開発で役立つ応用コマンド
- よくあるトラブルの解決方法
Dockerの基本的な考え方

コマンドを覚える前に、Dockerの基本的な仕組みを理解しておきましょう。
イメージとコンテナの違い
- イメージ:アプリケーションの設計図のようなもの
- コンテナ:イメージから作られた実際に動くアプリケーション
例えば、「ケーキのレシピ(イメージ)」から「実際のケーキ(コンテナ)」を作るイメージです。
イメージ関連コマンド
イメージは、コンテナを作るための元となるファイルです。インターネットからダウンロードしたり、自分で作ったりできます。
イメージのダウンロード
コマンド:docker pull
docker pull イメージ名
使用例
# Ubuntu のイメージをダウンロード
docker pull ubuntu
# 特定のバージョンを指定してダウンロード
docker pull nginx:1.21
いつ使う?
- 新しいアプリケーションを試したいとき
- 開発環境を構築するとき
- 特定のバージョンのソフトウェアが必要なとき
イメージの一覧表示
コマンド:docker images
docker images
使用例
# ローカルにあるすべてのイメージを表示
docker images
# 特定のイメージだけを表示
docker images ubuntu
表示される情報
- REPOSITORY:イメージの名前
- TAG:バージョンや種類
- IMAGE ID:イメージの識別番号
- CREATED:作成日時
- SIZE:ファイルサイズ
イメージの削除
コマンド:docker rmi
docker rmi イメージ名
使用例
# イメージ名で削除
docker rmi ubuntu
# イメージIDで削除
docker rmi abc123def456
# 使用されていないイメージをまとめて削除
docker image prune
注意点
- そのイメージから作られたコンテナがあると削除できません
- まずコンテナを削除してからイメージを削除しましょう
コンテナ操作コマンド

コンテナは実際にアプリケーションが動いている環境です。作成、起動、停止、削除などの操作ができます。
コンテナの作成と起動
コマンド:docker run
docker run [オプション] イメージ名
基本的な使用例
# シンプルに起動
docker run ubuntu
# バックグラウンドで起動
docker run -d nginx
# ポートを指定して起動
docker run -p 8080:80 nginx
# 名前をつけて起動
docker run --name my-container ubuntu
よく使うオプション
-d
:バックグラウンドで実行-p
:ポート番号を指定--name
:コンテナに名前をつける-it
:対話モードで起動--rm
:停止時に自動で削除
コンテナの一覧表示
コマンド:docker ps
# 起動中のコンテナのみ表示
docker ps
# すべてのコンテナを表示(停止中も含む)
docker ps -a
表示される情報
- CONTAINER ID:コンテナの識別番号
- IMAGE:使用しているイメージ
- COMMAND:実行されているコマンド
- CREATED:作成日時
- STATUS:現在の状態
- PORTS:ポート設定
- NAMES:コンテナ名
コンテナの停止と再起動
停止:docker stop
docker stop コンテナID
# または
docker stop コンテナ名
再起動:docker start
docker start コンテナID
完全な再起動:docker restart
docker restart コンテナID
使い分け
stop
→start
:設定を保持したまま再起動restart
:一度に停止→起動を実行
コンテナの削除
コマンド:docker rm
docker rm コンテナID
使用例
# 単体で削除
docker rm my-container
# 複数まとめて削除
docker rm container1 container2
# 停止中のコンテナをすべて削除
docker container prune
注意点
- 起動中のコンテナは削除できません
- まず
docker stop
で停止してから削除しましょう
コンテナ内部操作コマンド
コンテナの中に入って作業したり、ログを確認したりするコマンドです。
コンテナ内でコマンドを実行
コマンド:docker exec
docker exec [オプション] コンテナID コマンド
使用例
# bashシェルでコンテナに入る
docker exec -it コンテナID bash
# 特定のコマンドを実行
docker exec コンテナID ls -la
# rootユーザーでコンテナに入る
docker exec -it -u root コンテナID bash
よく使うオプション
-it
:対話的にコマンドを実行-u
:実行するユーザーを指定-w
:作業ディレクトリを指定
ログの確認
コマンド:docker logs
docker logs コンテナID
使用例
# 基本的なログ表示
docker logs my-container
# リアルタイムでログを表示
docker logs -f my-container
# 最新の100行だけ表示
docker logs --tail 100 my-container
# 特定の時間以降のログを表示
docker logs --since 2023-01-01 my-container
ファイルのコピー
コマンド:docker cp
# ホスト → コンテナ
docker cp ローカルファイル コンテナID:コンテナ内パス
# コンテナ → ホスト
docker cp コンテナID:コンテナ内パス ローカルパス
使用例
# ローカルのファイルをコンテナにコピー
docker cp ./app.py my-container:/app/
# コンテナのファイルをローカルにコピー
docker cp my-container:/var/log/app.log ./logs/
ネットワークとボリューム操作

Dockerでは、コンテナ同士の通信や、データの永続化のための仕組みがあります。
ネットワーク関連
ネットワーク一覧の表示
docker network ls
新しいネットワークの作成
docker network create ネットワーク名
使用例
# カスタムネットワークを作成
docker network create my-network
# ネットワークを指定してコンテナを起動
docker run --network my-network --name app1 ubuntu
docker run --network my-network --name app2 ubuntu
なぜネットワークが必要?
- コンテナ同士が通信するため
- セキュリティを向上させるため
- 複雑なアプリケーション構成を管理するため
ボリューム関連
ボリューム一覧の表示
docker volume ls
ボリュームの作成
docker volume create ボリューム名
ボリュームの削除
docker volume rm ボリューム名
使用例
# データベース用のボリュームを作成
docker volume create db-data
# ボリュームを使ってコンテナを起動
docker run -v db-data:/var/lib/mysql mysql
# ローカルフォルダをマウント
docker run -v /home/user/data:/app/data ubuntu
ボリュームを使う理由
- コンテナを削除してもデータが残る
- 複数のコンテナでデータを共有できる
- バックアップや移行が簡単
イメージ作成コマンド
自分でカスタマイズしたイメージを作ることができます。
Dockerfileからイメージを作成
コマンド:docker build
docker build -t イメージ名:タグ パス
使用例
# 現在のディレクトリのDockerfileからイメージを作成
docker build -t my-app:latest .
# 特定のDockerfileを指定
docker build -f /path/to/Dockerfile -t my-app .
# キャッシュを使わずにビルド
docker build --no-cache -t my-app .
Dockerfileの例
# ベースイメージを指定
FROM ubuntu:20.04
# 作業ディレクトリを設定
WORKDIR /app
# ファイルをコピー
COPY . /app
# パッケージをインストール
RUN apt-get update && apt-get install -y python3
# 起動コマンドを指定
CMD ["python3", "app.py"]
イメージにタグをつける
コマンド:docker tag
docker tag 元のイメージ名 新しいイメージ名:タグ
使用例
# バージョンタグを追加
docker tag my-app:latest my-app:v1.0
# Docker Hubにプッシュする準備
docker tag my-app username/my-app:latest
よく使う組み合わせパターン
実際の開発では、複数のコマンドを組み合わせて使うことが多いです。
開発時の一般的な流れ
1. イメージの準備
# 必要なイメージをダウンロード
docker pull node:16
2. 開発用コンテナの起動
# ローカルのコードをマウントして起動
docker run -it --name dev-container \
-v $(pwd):/app \
-p 3000:3000 \
node:16 bash
3. 開発作業
# コンテナに入って作業
docker exec -it dev-container bash
4. 終了とクリーンアップ
# コンテナを停止
docker stop dev-container
# 不要になったら削除
docker rm dev-container
トラブルシューティング
コンテナが起動しない場合
# ログを確認
docker logs コンテナID
# コンテナの詳細情報を確認
docker inspect コンテナID
容量不足の場合
# 使用されていないリソースを削除
docker system prune
# より徹底的にクリーンアップ
docker system prune -a
便利なオプションとTips
よく使うオプションの組み合わせ
バックグラウンドで永続的に動かす
docker run -d --restart unless-stopped nginx
環境変数を設定して起動
docker run -e DATABASE_URL=postgres://... my-app
複数のポートを公開
docker run -p 80:80 -p 443:443 nginx
効率的なコマンドの使い方
エイリアス(別名)を設定
# よく使うコマンドを短縮
alias dps='docker ps'
alias dimg='docker images'
alias dlog='docker logs'
コンテナIDの省略
# 最初の数文字だけでOK
docker stop abc123def456
# ↓
docker stop abc
セキュリティとベストプラクティス

セキュリティの注意点
rootユーザーを避ける
# 一般ユーザーでコンテナを起動
docker run -u 1000:1000 ubuntu
最小限の権限で実行
# 読み取り専用でマウント
docker run -v /data:/app/data:ro ubuntu
信頼できるイメージを使用
# 公式イメージを優先
docker pull ubuntu:20.04
# 個人のイメージは注意深く検証
パフォーマンスの最適化
イメージサイズの削減
- マルチステージビルドを使用
- 不要なパッケージを削除
- Alpine Linuxベースのイメージを検討
キャッシュの活用
- Dockerfileの順序を最適化
.dockerignore
ファイルを活用- ビルドキャッシュを適切に管理
まとめ
Dockerには数多くのコマンドがありますが、まずは今回紹介した基本的なコマンドから覚えることが大切です。
最初に覚えるべきコマンド
docker pull
– イメージのダウンロードdocker run
– コンテナの作成と起動docker ps
– コンテナの一覧表示docker stop
– コンテナの停止docker logs
– ログの確認
慣れてきたら覚えるコマンド
docker exec
– コンテナ内でのコマンド実行docker build
– イメージの作成docker network
– ネットワーク管理docker volume
– ボリューム管理
効果的な学習方法
- 実際にコマンドを試してみる
- よく使うコマンドはメモやエイリアスを作成
- 目的に応じてコマンドを組み合わせて使う
- エラーが出たらログを確認する習慣をつける
困ったときは docker --help
や docker コマンド名 --help
で詳しい説明を見ることができるので、積極的に活用してください。
コメント