Dockerは、仮想化技術を用いたアプリケーションのコンテナ化ツールで、開発環境を効率的に構築・管理するために多くの開発者に利用されています。本記事では、Dockerを使ってローカルの開発環境を構築する方法と基本操作について解説します。この記事を参考にすることで、初心者でも簡単にDockerを利用したローカル開発環境を作成し、効率的な開発ができるようになります。
Dockerとは
Dockerの概要
Dockerは、コンテナ技術を用いてアプリケーションやその依存関係を一つのパッケージとしてまとめ、どの環境でも一貫して動作させることができるツールです。アプリケーションを「コンテナ」として動作させるため、ホスト環境に依存せずに動作させることが可能です。
Dockerのメリット
- 環境の一貫性:開発環境や本番環境の違いにより起こるエラーを軽減します。
- 効率的なリソース管理:仮想マシン(VM)と比較して軽量で高速です。
- 移植性の高さ:どのホスト環境でも同じように動作するため、複数人での開発やデプロイが容易です。
Dockerのインストール
Dockerを利用するためには、Docker Desktopをインストールします。以下の手順で、Mac、Windows、Linuxにインストールが可能です。
手順
- Dockerの公式サイトにアクセス Docker公式サイトにアクセスし、Docker Desktopをダウンロードします。
- インストーラの実行 ダウンロードしたインストーラを実行し、画面の指示に従ってインストールします。インストール完了後、Docker Desktopを起動し、Dockerが正常に動作しているか確認してください。
- インストールの確認 ターミナル(またはコマンドプロンプト)を開き、以下のコマンドでDockerのバージョン情報が表示されるか確認します。bashコードをコピーする
docker --version
正常にインストールされていれば、Dockerのバージョン情報が表示されます。
Dockerの基本操作
Dockerを使った開発環境の構築にあたり、まずは基本的な操作方法を理解しておきましょう。以下のコマンドを使用することで、コンテナの作成や管理が容易に行えます。
1. Dockerイメージを取得する
Dockerでは「イメージ」をもとにコンテナを作成します。イメージはアプリケーションの設定が含まれたテンプレートです。例えば、Nginxのイメージを取得する場合は以下のコマンドを実行します。
docker pull nginx
2. コンテナの作成と起動
取得したイメージからコンテナを作成し、起動するにはdocker run
コマンドを使います。以下のコマンドで、Nginxのコンテナをバックグラウンドで起動できます。
docker run -d -p 8080:80 nginx
-d
:バックグラウンドでコンテナを実行-p
:ホストのポートとコンテナのポートをバインド(例ではホストの8080番をコンテナの80番にマッピング)
3. 起動中のコンテナを確認する
現在起動しているコンテナを確認するには、以下のコマンドを実行します。
docker ps
4. コンテナの停止と削除
不要なコンテナは停止し、削除することが可能です。
- コンテナの停止:bashコードをコピーする
docker stop <コンテナID>
- コンテナの削除:bashコードをコピーする
docker rm <コンテナID>
5. イメージの削除
不要になったDockerイメージも削除できます。
docker rmi nginx
開発環境の構築例:Node.jsアプリケーション
ここでは、簡単なNode.jsアプリケーションをDocker上で動作させる手順を紹介します。
1. Node.jsアプリケーションの準備
まず、Node.jsアプリケーションのディレクトリを作成し、以下のコードをapp.js
というファイルに保存します。
// app.js
const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => {
res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello Docker World\n');
});
server.listen(port, hostname, () => {
console.log(`Server running at http://${hostname}:${port}/`);
});
2. Dockerfileの作成
次に、Node.jsアプリケーションをDocker上で動作させるためにDockerfile
を作成します。
# Node.jsイメージを取得
FROM node:14
# 作業ディレクトリの作成
WORKDIR /usr/src/app
# アプリケーションのファイルをコンテナにコピー
COPY . .
# アプリケーションのインストールとビルド
RUN npm install
# コンテナがリッスンするポートを指定
EXPOSE 3000
# アプリケーションの起動
CMD ["node", "app.js"]
3. Dockerイメージのビルド
以下のコマンドでDockerイメージをビルドします。
docker build -t my-node-app .
4. コンテナの起動
ビルドしたイメージからコンテナを起動します。
docker run -p 3000:3000 my-node-app
ブラウザでhttp://localhost:3000
にアクセスすると、Hello Docker World
と表示されれば成功です。
Docker Composeを使った環境管理
複数のサービスを連携させて開発する際には、docker-compose.yml
ファイルを使うと便利です。以下のようなファイルを作成することで、Node.jsとRedisを連携させた開発環境を一括で管理できます。
version: '3'
services:
app:
build: .
ports:
- "3000:3000"
redis:
image: "redis:alpine"
Docker Composeでコンテナを起動する
以下のコマンドで、Composeファイルに基づいて一括でコンテナが起動します。
bashコードをコピーするdocker-compose up -d
まとめ
Dockerを使用すると、どの環境でも一貫した開発環境を簡単に構築できるため、開発の効率化に大きく寄与します。本記事で紹介した基本操作と構築手順を参考に、ぜひDockerを活用してみてください。