Contents
Docker初心者のためのコマンドガイド
Dockerを初めて触れる開発者にとって、コマンドが「何を目的に使うのか」「どう実行するのか」は大きなハードルです。本記事では、Docker 初心者 コマンド チートシートとして、必要最低限のコマンドを手順書形式で解説します。特に docker run や Dockerfile基本構文 といった実践的な使い方をわかりやすく整理し、即座に使える知識をお届けします。
Dockerとは?
Dockerは、アプリケーションを「コンテナ」と呼ばれる仮想環境で動作させる仕組みです。この技術を使うことで、開発環境と本番環境の不一致(いわゆる「それが動くか?」問題)を解消できます。コンテナ化によってソフトウェアの依存関係が明確になり、誰もが同じ環境で動作確認できるようになります。
この記事で学べること
本記事では、以下の内容を順を追って解説します:
- 実行中のコンテナやイメージを一覧表示するコマンド
- ローカルからリポジトリにイメージを公開する方法
- コンテナの起動・停止・削除に関する実践的な手順
- Dockerfileでアプリケーション構築するための基本構文
Dockerの前提条件 (インストール手順)
Dockerを使うには、まずPCにDocker Engineをインストールしておく必要があります。以下に主要OSでのインストール手順を紹介します。
Windows / Mac (Docker Desktop)
- https://www.docker.com/products/docker-desktop から「Get Docker」ボタンをクリック
- インストーラーを実行し、ガイドに従ってインストール
- 完了後、Docker Desktopアプリを開き、起動確認 (ターミナルで
docker --versionを実行)
Linux (Ubuntu)
|
1 2 3 4 5 |
sudo apt-get update sudo apt-get install docker.io sudo systemctl enable docker sudo systemctl start docker |
重要: Docker CLIを使用する場合は、
sudoなしでコマンドを実行できるようにユーザーをdockerグループに追加してください:sudo usermod -aG docker $USER
基本操作をマスターする
コンテナやイメージの一覧を確認することは、Dockerを使う上で最初に習得すべきスキルです。以下に具体的なコマンドとその使い方を紹介します。
docker ps
実行中のコンテナの一覧を表示します。
- 理由: コンテナが正常に起動しているか、どのポートを使用しているかを確認できます。
-
例:
bash
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
abcdef123456 nginx:latest "nginx -g ..." 5 minutes ago Up 5 minutes 80/tcp webserver -
補足: 実行中でないコンテナを含む場合は
docker ps -aを使用します。
イメージ管理のコマンド
Dockerは「イメージ」と呼ばれるテンプレートからコンテナを作成します。以下のコマンドでリポジトリとのやり取りを行います。
docker pull
公式リポジトリからイメージをダウンロードします。
- 理由: 必要なソフトウェア(例: nginx、MySQL)の最新版や特定バージョンを取得できます。
-
例:
bash
$ docker pull nginx
Using default tag: latest
latest: Pulling from library/nginx
abcdef123456: Pull complete
...
Status: Downloaded newer image for nginx:latest -
補足: タグを指定するには
docker pull nginx:1.20のようにします。
docker push
ローカルに作成したイメージをリポジトリ(例: Docker Hub)に公開します。
- 理由: 自分で作ったアプリケーションやカスタム設定を他のユーザーと共有できます。
- 手順:
- リポジトリ登録: Docker Hubアカウントを作成し、リポジトリ名(例: myusername/myapp)を決める
- イメージにタグを付ける:
docker tag myapp myusername/myapp:latest - リポジトリにログイン:
docker login(ID/パスワード入力) - 公開する:
docker push myusername/myapp:latest
注意: プライベートリポジトリの場合は、認証情報を保存する
~/.docker/config.jsonにアクセス許可が必要です。
コンテナ操作の手順
コンテナはアプリケーションを動かすための「実行環境」です。以下に代表的なコマンドの使い方をシナリオ形式で説明します。
docker run
新しいコンテナを作成して起動します。
- 理由: ローカルで動作確認したり、Webサーバーを立ち上げたりする際に使います。
-
例: Webサーバーを起動(ポート80をホストの8080にマッピング)
bash
$ docker run -d -p 8080:80 nginx
abcdef123456 -
補足:
-dオプションでバックグラウンド実行、-pでポートマッピングを指定します。
docker stop
実行中のコンテナを停止します。
- 理由: コンテナが不要になったり、再構築が必要な場合に使います。
-
例:
bash
$ docker stop abcdef123456
abcdef123456 -
補足:
docker killもありますが、停止を優しく行うにはstopを推奨します。
docker rm
停止中のコンテナを削除します。
- 理由: 不要なコンテナをメモリ節約のために削除できます。
-
例:
bash
$ docker rm abcdef123456
abcdef123456 -
補足: 実行中のコンテナは
docker rm -fで強制削除可能です。
Dockerfileの基本構文とベストプラクティス
Dockerfileは、イメージを作成するためのレシピです。以下に必須となるコマンドを説明します。
FROM
ベースとなるイメージを指定します。
- 理由: アプリケーションが動く環境(例: UbuntuやNode.js)を定義します。
- 例:
Dockerfile
FROM ubuntu:20.04
CMD
コンテナ起動時のデフォルトコマンドを指定します。
- 理由:
docker runで実行されたときに自動で呼ばれるコマンドです。 - 例:
Dockerfile
CMD ["nginx", "-g", "daemon off;"]
COPY
ローカルのファイルをイメージにコピーします。
- 理由: アプリケーションのコードや設定ファイルをコンテナ内へ配置します。
- 例:
Dockerfile
COPY . /app
注意:
docker buildでは.(カレントディレクトリ) を指定した場合、.dockerignoreファイルで無駄なファイルを除外する必要があります。
docker commit の使用に関する注意事項
docker commit は「起動中のコンテナの状態をイメージに保存」しますが、以下のような問題があります。
| 問題点 | 説明 |
|---|---|
| 非可再現性 | 手動で行った変更が記録されず、他の開発者が同じ環境を作成できない |
| メンテナンス困難 | コンテナの状態を追跡しにくい (ロールバックやバージョン管理が難しい) |
推奨される代替案: Dockerfileを使う
|
1 2 3 4 |
# 例:nginxのカスタムイメージを作成 FROM nginx:latest COPY ./custom.conf /etc/nginx/conf.d/default.conf |
実践!即戦力になるコマンド集
実際の業務では、Dockerfileからイメージを作成したり、コンテナの状態を保存したりする必要があるケースが多々あります。以下に具体的な手順を解説します。
docker build
Dockerfileに基づいてイメージを作成します。
- 理由: カスタム設定やアプリケーションをビルドするために使います。
- 例:
.はカレントディレクトリのDockerfileを使用することを意味します。
bash
$ docker build -t myapp .
Sending build context to Docker daemon ...
Step 1/3 : FROM ubuntu:20.04
---> abcdef123456
...
Successfully built abcdef123456
docker commit
起動中のコンテナの状態をイメージに保存します。
- 理由: コンテナ内で手動で行った変更を永続化するときに使います。
- 例:
webserverという名前のコンテナをイメージに変換
bash
$ docker commit webserver myapp:latest
abcdef123456
まとめ
本記事では、Docker初心者が即座に使えるコマンドを以下のように整理しました:
- 基本操作:
docker ps,docker imagesで状況確認 - イメージ管理:
docker pull,docker pushでリポジトリとのやり取り - コンテナ操作:
docker run,stop,rmでの起動・停止・削除 - Dockerfile構文:
FROM,CMD,COPYでアプリケーションの準備 - 実践コマンド:
docker build,commitでイメージ作成
記事のコマンドをコピーして早速Dockerで実践! これらのコマンドを活用することで、開発環境と本番環境の不一致や依存関係の問題が解決し、業務効率も向上します。