Docker入門|開発環境構築の基本と最初に覚えるコマンド
「自分のPCでは動くのに、他の人の環境では動かない」——開発でよくあるこの問題を解決するのが Docker だ。この記事では、Docker を使った開発環境構築の基本を入門者向けに整理する。結論を先に言うと、Docker は環境ごと持ち運べる箱で、これを使うとチーム全員が同じ環境で開発できる。
なぜ環境構築が楽になるのか
Docker は、アプリと、その動作に必要な環境(OS・ライブラリ・設定)をコンテナという箱にまとめる。この箱はどのマシンでも同じように動くので、「自分の環境では動く問題」が消える。
新メンバーが入っても、Docker さえあれば数コマンドで全員と同じ環境が立ち上がる。これが最大のメリットだ。
イメージとコンテナの違い
最初に混乱しやすいのがこの2つ。
- イメージ: 環境の「設計図・テンプレート」(不変)
- コンテナ: イメージから起動した「実行中の箱」(使い捨て可能)
イメージから何個でもコンテナを作れる、という関係だ。
最初に覚えるコマンド
# イメージを取得して起動
docker run -d -p 8080:80 nginx
# 動いているコンテナ一覧
docker ps
# コンテナを止める
docker stop <コンテナID>
# イメージ一覧
docker images
まずはこの4つで「起動して、確認して、止める」流れを掴めば十分だ。
docker-compose で複数まとめる
実際の開発では、アプリ+データベース+キャッシュ…と複数のコンテナを使うことが多い。それらをまとめて管理するのが docker-compose だ。
# docker-compose.yml の例
services:
app:
build: .
ports:
- "3000:3000"
db:
image: postgres:16
docker compose up -d # まとめて起動
設定をファイルに書いておけば、up 一発で開発環境一式が立ち上がる。
つまずきどころ
- ポートの衝突: ホスト側のポートが既に使われていると起動に失敗する
- ボリューム(データ永続化): コンテナを消すとデータも消える。残したいデータはボリュームを使う
- イメージの肥大化: 不要なものを入れすぎない。軽量ベースイメージを選ぶ
まとめ
- Docker は環境ごと持ち運べる箱。「自分の環境では動く問題」を解決
- イメージ=設計図、コンテナ=実行中の箱
- まずは
run/ps/stop/imagesを覚える - 複数コンテナは
docker composeでまとめて管理する