Dockerはアプリケーションをコンテナと呼ぶ独立した環境で動かす技術です。「自分のPCでは動くのに本番サーバーで動かない」という問題を解決します。
Dockerとは?コンテナ技術の基礎
コンテナとは、アプリケーションの実行に必要なコード・ライブラリ・設定をひとまとめにしたパッケージです。
- 環境の再現性:開発・テスト・本番で同じ環境を作れる
- 軽量:仮想マシン(VM)より起動が速くリソースが少ない
- 可搬性:どのOS・クラウドでも動かせる
- 分離性:複数アプリが同一マシンで干渉しない
Dockerのインストール
- Docker Desktopをダウンロード
- インストーラーを実行(Windows/Mac対応)
- ターミナルで確認:
docker --version
基本コマンド一覧
| コマンド | 説明 |
|---|---|
| docker pull [image] | イメージをダウンロード |
| docker run [image] | コンテナを起動 |
| docker ps | 起動中のコンテナ一覧 |
| docker ps -a | 全コンテナ一覧 |
| docker stop [id] | コンテナを停止 |
| docker rm [id] | コンテナを削除 |
| docker images | イメージ一覧 |
| docker rmi [image] | イメージを削除 |
よく使うdocker runオプション
-d:バックグラウンドで起動-p 8080:80:ポートのマッピング(ホスト:コンテナ)-v /host/path:/container/path:ボリューム(ファイル共有)--name myapp:コンテナに名前をつける-e ENV_VAR=value:環境変数の設定
Dockerfileの書き方
Dockerfileはカスタムイメージを作るための設定ファイルです。
FROM node:20
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "app.js"]
- FROM:ベースイメージを指定
- WORKDIR:作業ディレクトリを設定
- COPY:ファイルをコンテナにコピー
- RUN:コマンドを実行(ビルド時)
- EXPOSE:公開ポートを指定
- CMD:コンテナ起動時に実行するコマンド
Docker Compose(複数コンテナの管理)
WebアプリとDBなど複数のコンテナをまとめて管理するためのdocker-compose.ymlファイル。
version: '3'
services:
web:
build: .
ports:
- "3000:3000"
depends_on:
- db
db:
image: postgres:15
environment:
POSTGRES_PASSWORD: secret
docker compose up -d で全サービスを起動できます。
エンジニア転職でDockerが重要な理由
現代のWeb開発・インフラ環境ではDockerはほぼ必須スキルです。特にバックエンド・インフラ・DevOps分野での転職にはDockerの知識が評価されます。
まとめ
Dockerを使えば環境構築の悩みがなくなり、チーム開発やデプロイが圧倒的に楽になります。エンジニアとしてのスキルアップにDockerの習得は必須です。
📚 プログラミング初心者におすすめの本