Dockerを使用してNode.jsアプリケーションをデプロイする

この記事では、Dockerコンテナー内にノードアプリケーションをデプロイする方法を示します。

注:このチュートリアルでは、Dockerがインストールされ、使用できる状態になっていることを前提としています。

ステップ1:Nodeアプリケーションを作成する

というディレクトリを作成しますsrc。そのディレクトリを使用します。src/package.json以下を含むという名前のファイルを作成します。

{
  "name": "hello_world",
  "private": true,
  "version": "0.0.1",
  "description": "Hello world Example",
  "author": "",
  "dependencies": {
        "express": "3.2.4"
   }
}

次にsrc/index.js、以下を含むを作成します。

var express = require('express');
var app = express();
app.get('/', function (req, res) {
    res.send('Hello from Docker\n');
});

app.listen(8080);
console.log('Running on http://localhost:8080');

ポート8080は自由に変更できますが、この例では、アプリケーションで使用するためにこのポートを公開します。これら2つのファイルを作成したら、次のステップに進むことができます。

ステップ2:Dockerfileを作成する

「Dockerfile」を使用すると、Dockerfile内で提供された一連の指示に基づいて、Dockerイメージを構築およびデプロイできます。という名前のファイルを作成Dockerfileし、次の内容を入力します。

FROM centos:latest
MAINTAINER Name Here <username@localhost>
RUN rpm -Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
RUN yum install nodejs npm -y 
COPY ./src /opt/src
RUN cd /opt/src; npm install
EXPOSE 8080
CMD ["node", "/opt/src/index.js"]

説明:

FROM centos:latest

これはという画像を使用しますcentos。ホストに使用可能なイメージがない場合、Dockerはリポジトリからイメージをプルします。

MAINTAINER Name Here <username@localhost>

この指示により、作成するイメージの作成者を設定できます。

RUN rpm -Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
RUN yum install nodejs npm -y
…
RUN cd /opt/src; npm install

「RUN」は、指定されたシェルコマンドを実行します。この例では、epel-release rpmをダウンロードしてインストールし、リポジトリからnodejsとnpmをインストールします。次の操作の後、それはプロジェクトディレクトリにcdして実行npm installされ、アプリケーションの依存関係をインストールします。

COPY ./src /opt/src

ホストからコンテナにディレクトリ(およびファイル)をコピーします。

EXPOSE 8080

外の世界が使用するためにポート8080を開きます。

CMD ["node", "/opt/src/index.js"]

CMD コンテナのデフォルトの実行を提供します。

上記のとおりにファイルを作成したら、次のステップに進むことができます。

ステップ3:イメージを作成する

イメージをビルドするには、次のコマンドを実行します。

docker build -t name/application .

これにより、リポジトリ名がのイメージが作成されますname/application。エラーがなければ、次のステップに進むことができます。

ステップ4:アプリケーションをデプロイしてテストする

すべてが設定されたので、次のコマンドを実行してイメージを実行できます。

docker run -p 49160:8080 -d name/application

アプリケーションをテストするには、ホストから次のコマンドを実行します。

curl http://172.17.42.1:49160/ 

表示されていればHello from Docker、Dockerイメージが正常にデプロイされています。これをブラウザーでテストする場合は、ブラウザーhttp://[SERVER_IP]:49160内からアクセスし(それに応じてIPアドレスを置き換えます)、同じメッセージが表示されます。



Leave a Comment

CentOS 7にApacheをインストールする方法

CentOS 7にApacheをインストールする方法

CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1にBlacklistdをインストールする方法

FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

Windows Serverのサーバーマネージャーを使用した複数サーバーの管理

サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法

CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。

DebianでSnortを設定する方法

DebianでSnortを設定する方法

Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールする方法

CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsでhMailServerを使用してメールサーバーを構築する

WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。

Ubuntu 19.04にFiveMサーバーをインストールする方法

Ubuntu 19.04にFiveMサーバーをインストールする方法

FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

WsgiDAVを使用してDebian 10にWebDAVをデプロイする

Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。

ヘルスケア2021における人工知能の影響

ヘルスケア2021における人工知能の影響

ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。