はじめに
こんにちは!今回は開発環境を簡単に構築・管理できるDockerの基本環境構築について解説します。Dockerを使うと、「自分の環境では動くのに本番環境では動かない」という問題を解決でき、チーム開発もスムーズになります。
Dockerとは?
Dockerはコンテナ型の仮想化技術で、アプリケーションとその実行環境を一緒にパッケージ化できるプラットフォームです。従来の仮想マシンと異なり、ホストOSのカーネルを共有するため、軽量かつ高速に動作します。
主なメリット
- 環境の一貫性: 開発・テスト・本番環境を同一に保てる
- 素早いデプロイ: コンテナは秒単位で起動
- リソース効率: 仮想マシンより少ないリソースで動作
- アイソレーション: アプリケーション同士が干渉しない
インストール手順
Windows 10/11の場合
- Docker Desktop for Windowsをダウンロード
- インストーラーを実行し、画面の指示に従う
- WSL 2 バックエンドの使用が推奨されるので、プロンプトが表示されたら有効化
- インストール完了後、Docker Desktopを起動
macOSの場合
- Docker Desktop for Macをダウンロード
.dmg
ファイルを開き、Applicationsフォルダにドラッグ- Dockerを起動し、初期設定を完了
Linuxの場合(Ubuntu)
# 古いバージョンを削除
sudo apt-get remove docker docker-engine docker.io containerd runc
# 必要なパッケージをインストール
sudo apt-get update
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
# Dockerの公式GPGキーを追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# リポジトリを設定
echo \
"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Dockerエンジンをインストール
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
# Dockerグループにユーザーを追加(sudoなしで実行可能に)
sudo usermod -aG docker $USER
インストール確認
どのOS環境でも、インストール後に以下のコマンドを実行して動作確認しましょう:
docker --version
docker run hello-world
hello-world
イメージが正常に実行されれば、Dockerのインストールは成功です!
Dockerの基本概念
イメージとコンテナ
- イメージ: アプリケーションを実行するために必要なパッケージ(コードやランタイム、ライブラリなど)
- コンテナ: イメージの実行インスタンス。同じイメージから複数のコンテナを作成可能
主要コマンド
# イメージのダウンロード
docker pull イメージ名:タグ
# イメージの一覧表示
docker images
# コンテナの起動
docker run イメージ名
# 実行中のコンテナ一覧
docker ps
# すべてのコンテナ一覧(停止中含む)
docker ps -a
# コンテナの停止
docker stop コンテナID
# コンテナの削除
docker rm コンテナID
# イメージの削除
docker rmi イメージID
Dockerfileの作成
Dockerfileを使ってカスタムイメージを作成できます。以下は簡単なNode.jsアプリケーションの例です:
# ベースイメージとしてNode.jsを使用
FROM node:14
# 作業ディレクトリを設定
WORKDIR /app
# パッケージ定義ファイルをコピー
COPY package*.json ./
# 依存関係のインストール
RUN npm install
# アプリケーションのソースをコピー
COPY . .
# ポート3000を公開
EXPOSE 3000
# アプリケーションを起動
CMD ["npm", "start"]
このDockerfileからイメージをビルドするには:
docker build -t myapp:latest .
Docker Composeの基本
Docker Composeを使うと、複数のコンテナを定義・実行できます。以下はNode.jsアプリとMongoDBを連携させる例です:
version: '3'
services:
app:
build: .
ports:
- "3000:3000"
depends_on:
- mongodb
environment:
- MONGO_URL=mongodb://mongodb:27017/myapp
mongodb:
image: mongo:latest
ports:
- "27017:27017"
volumes:
- mongo-data:/data/db
volumes:
mongo-data:
実行するには:
# 起動
docker-compose up
# バックグラウンド起動
docker-compose up -d
# 停止
docker-compose down
実践的なTips
ボリュームの活用
データを永続化するには、ボリュームを使用します:
# ボリュームの作成
docker volume create mydata
# ボリュームを使用してコンテナを起動
docker run -v mydata:/data イメージ名
ネットワーク設定
コンテナ間の通信を可能にするには、ネットワークを設定します:
# ネットワークの作成
docker network create mynetwork
# ネットワークを指定してコンテナを起動
docker run --network=mynetwork イメージ名
まとめ
この記事では、Dockerの基本的なインストール方法と使い方について解説しました。Dockerを使うことで、開発環境の構築や管理が格段に簡単になります。次回は、より実践的なDockerの使い方や、実際のプロジェクトでの活用方法について紹介していきます。
質問やコメントがあれば、ぜひコメント欄でお知らせください!
参考リンク
- Docker公式ドキュメント
- Docker Hub – 公式イメージリポジトリ
コメント