Docker - Node.jsの設定:初心者向けガイド
こんにちは、将来の開発者さんたち!今日は、DockerとNode.jsの世界に楽しい旅に出ます。あなたの近所の親切なコンピュータの先生として、私はこの冒険をステップバイステップで案内します。プログラミングが初めてであれば、心配しないでください - 最初から始めて、少しずつ進めていきます。コーヒー(またはあなたが好きなお茶)を一杯取り、一緒に潜りましょう!
Dockerとは?
本題に入る前に、まずDockerについて話しましょう。新しい家に引っ越すとします。異なる形とサイズの箱にすべてを詰める代わりに、すべての持ち物を標準化されたコンテナに入れて、どんなトラックや船にでも完璧に収まるようにどうでしょうか?それがDockerがソフトウェアに対して行うことです!
Dockerは、アプリケーションとそのすべての依存関係を標準化されたユニットであるコンテナにパッケージ化するプラットフォームです。これらのコンテナは、どんなシステムでも一貫して動作するため、開発、配信、実行がより簡単になります。
Node.jsとDockerを使う理由は?
さて、あなたはおそらく「なぜ私のNode.jsアプリケーションにDockerを使う必要があるのか?」と思っているかもしれません。それでは、ちょっとした話をしましょう。
昔々、開発者名叫びSarahちゃんがいました。彼女はラップトップで素晴らしいNode.jsアプリケーションを作成しました。完璧に動作しました!しかし、彼女がチームのサーバーで実行しようとしたとき、クラッシュしてしまいました。問題は?Node.jsの異なるバージョンと、いくつかの欠けている依存関係です。Sarahちゃんは数日間、それを修理しようとしました。
SarahちゃんがDockerを使っていたら、この頭痛を避けることができました。Dockerは、あなたのアプリケーションがどこにでも同じ環境で動作するように保証します - あなたのラップトップ、同僚のデスクトップ、またはクラウドのサーバーでもです。
DockerをNode.jsに設定する方法
さあ、袖をまくって、実際の設定に取りかかりましょう!
ステップ1: Dockerをインストールする
まず第一に、私たちのマシンにDockerをインストールする必要があります。Dockerのウェブサイトにアクセスし、あなたのオペレーティングシステム用のDocker Desktopをダウンロードして、インストール手順に従ってください!
ステップ2: Node.jsアプリケーションを作成する
シンプルなNode.jsアプリケーションをコンテナ化するために、新しいディレクトリを作成し、その中に移動します:
mkdir my-node-app
cd my-node-app
次に、シンプルなpackage.json
ファイルを作成します:
npm init -y
このコマンドは、デフォルトの値で基本的なpackage.json
ファイルを作成します。次に、人気のNode.jsフレームワークであるExpressをインストールします:
npm install express
次に、app.js
という名前のファイルを作成し、以下のコードを追加します:
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello, Docker!');
});
app.listen(port, () => {
console.log(`App listening at http://localhost:${port}`);
});
このシンプルなアプリケーションは、ルートURLにアクセスすると「Hello, Docker!」と応答するウェブサーバーを作成します。
ステップ3: Dockerfileを作成する
さあ、エキサイティングな部分です - Dockerfileを作成します!Dockerfileは、Dockerにどのようにコンテナを構築するかを指示するレシピのようなものです。プロジェクトディレクトリにDockerfile
(拡張子なし)という名前のファイルを作成し、以下を追加します:
# 公式のNodeランタイムを親イメージとして使用
FROM node:14
# コンテナ内の作業ディレクトリを設定
WORKDIR /usr/src/app
# package.jsonとpackage-lock.jsonをコピー
COPY package*.json ./
# 依存関係をインストール
RUN npm install
# アプリケーションの残りのコードをコピー
COPY . .
# ポート3000をコンテナの外からアクセス可能にする
EXPOSE 3000
# アプリケーションを実行するコマンドを定義
CMD [ "node", "app.js" ]
これを分解すると:
-
FROM node:14
: これで、基盤イメージとしてNode.jsバージョン14を使用することを指定します。 -
WORKDIR /usr/src/app
: コンテナ内の作業ディレクトリを設定します。 -
COPY package*.json ./
:package.json
ファイルをコンテナにコピーします。 -
RUN npm install
: コンテナ内で依存関係をインストールします。 -
COPY . .
: アプリケーションの残りのコードをコピーします。 -
EXPOSE 3000
: ポート3000をコンテナの外からアクセス可能にします。 -
CMD [ "node", "app.js" ]
: アプリケーションを実行するコマンドを指定します。
ステップ4: Dockerコンテナをビルドして実行する
Dockerfileが準備できたら、Dockerイメージをビルドします:
docker build -t my-node-app .
このコマンドは、Dockerイメージをビルドし、my-node-app
というタグを付けます。末尾の.
は、Dockerfileが当前ディレクトリに存在することをDockerに指示します。
ビルドが完了したら、コンテナを実行します:
docker run -p 3000:3000 my-node-app
このコマンドは、コンテナを実行し、コンテナのポート3000をホストマシンのポート3000にマッピングします。
おめでとうございます!今あなたは、ブラウザでhttp://localhost:3000
にアクセスして「Hello, Docker!」と表示されるはずです。
一般的なDockerコマンド
以下に、いくつかの一般的なDockerコマンドを示します:
コマンド | 説明 |
---|---|
docker build |
DockerイメージをDockerfileからビルド |
docker run |
Dockerコンテナを実行 |
docker ps |
実行中のコンテナを一覧表示 |
docker stop |
実行中のコンテナを停止 |
docker rm |
コンテナを削除 |
docker images |
Dockerイメージを一覧表示 |
docker rmi |
Dockerイメージを削除 |
docker logs |
コンテナのログを表示 |
結論
そして、皆さん!私たちはDockerを使ってNode.jsアプリケーションを無事に設定しました。Dockerとは何か、なぜ便利か、そしてNode.jsアプリケーション用のDockerコンテナを作成し実行する方法を学びました。
忘れないでください、新しいスキルを習得するには練習が必要です。最初は完璧に動作しないかもしれませんが、失敗は学びの一部です!試行錯誤を続け、すぐにプロフェッショナルのようにdockerizeするようになるでしょう!
最後に、私がDockerを始めたとき、間違ってdocker run
をdocker build
の代わりに打ち込んでしまい、1時間も変更が反映されない理由を探していたことを共有したいと思います。私たちみんな間違えます - それが学びです!
codingを続け、学び続け、そして何より楽しみましょう!次回まで、happy dockerizing!
Credits: Image by storyset