Dockerの基本環境構築ガイド – ゼロからはじめるコンテナ開発

はじめに

こんにちは!今回は開発環境を簡単に構築・管理できるDockerの基本環境構築について解説します。Dockerを使うと、「自分の環境では動くのに本番環境では動かない」という問題を解決でき、チーム開発もスムーズになります。

Dockerとは?

Dockerはコンテナ型の仮想化技術で、アプリケーションとその実行環境を一緒にパッケージ化できるプラットフォームです。従来の仮想マシンと異なり、ホストOSのカーネルを共有するため、軽量かつ高速に動作します。

主なメリット

  • 環境の一貫性: 開発・テスト・本番環境を同一に保てる
  • 素早いデプロイ: コンテナは秒単位で起動
  • リソース効率: 仮想マシンより少ないリソースで動作
  • アイソレーション: アプリケーション同士が干渉しない

インストール手順

Windows 10/11の場合

  1. Docker Desktop for Windowsをダウンロード
  2. インストーラーを実行し、画面の指示に従う
  3. WSL 2 バックエンドの使用が推奨されるので、プロンプトが表示されたら有効化
  4. インストール完了後、Docker Desktopを起動

macOSの場合

  1. Docker Desktop for Macをダウンロード
  2. .dmgファイルを開き、Applicationsフォルダにドラッグ
  3. 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の使い方や、実際のプロジェクトでの活用方法について紹介していきます。

質問やコメントがあれば、ぜひコメント欄でお知らせください!

参考リンク

コメント

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