Dockerコマンド一覧:初心者が覚えておきたい基本と応用コマンドまとめ

Docker

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

使い分け

  • stopstart:設定を保持したまま再起動
  • 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には数多くのコマンドがありますが、まずは今回紹介した基本的なコマンドから覚えることが大切です。

最初に覚えるべきコマンド

  1. docker pull – イメージのダウンロード
  2. docker run – コンテナの作成と起動
  3. docker ps – コンテナの一覧表示
  4. docker stop – コンテナの停止
  5. docker logs – ログの確認

慣れてきたら覚えるコマンド

  • docker exec – コンテナ内でのコマンド実行
  • docker build – イメージの作成
  • docker network – ネットワーク管理
  • docker volume – ボリューム管理

効果的な学習方法

  • 実際にコマンドを試してみる
  • よく使うコマンドはメモやエイリアスを作成
  • 目的に応じてコマンドを組み合わせて使う
  • エラーが出たらログを確認する習慣をつける

困ったときは docker --helpdocker コマンド名 --help で詳しい説明を見ることができるので、積極的に活用してください。

コメント

タイトルとURLをコピーしました