GNU/Linux >> Linux の 問題 >  >> Ubuntu

Dockerガイド:Ubuntu18.04でのNodejsExpressアプリケーションのDocker化

Dockerは、開発者とシステム管理者が軽量コンテナとしてどこでもアプリケーションをビルド、パッケージ化、実行するためのオープンプラットフォームを提供するオープンソースプロジェクトです。 Dockerは、ソフトウェアコンテナ内のアプリケーションのデプロイを自動化します。

Nodejsは、オープンソースのJavaScriptランタイム環境です。マルチプラットフォームのランタイムであり、Linux、Windows、MacOS、FreeBSDなどにインストールできます。Nodejsは、サーバーとデスクトップの両方のアプリケーションを構築するのに非常に便利です。

このチュートリアルでは、Ubuntu18.04で既存のNodejsExpressアプリケーションプロジェクトのDockerイメージを作成する方法を紹介します。 Nodejsアプリケーションのドッキングについて学習し、docker-composeスクリプトを使用してアプリケーションをコンテナーとしてdocker環境にデプロイします。

前提条件
  • Ubuntu 18.04
  • root権限
何をするか
  1. DockerCEをインストールする
  2. Dockerのインストール-作成
  3. NodejsExpressプロジェクトのセットアップ
  4. プロジェクトを構築する
  5. テスト
ステップ1-DockerCEをインストールする

このチュートリアルでは、dockerリポジトリからdocker-ceコミュニティエディションをインストールします。構成ファイルバージョン3をサポートするdocker-ceコミュニティエディションとdocker-composeをインストールします。

docker-ceをインストールする前に、aptコマンドを使用して必要なdocker依存関係をインストールしてください。

sudo apt install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common

次に、以下のコマンドを実行して、Dockerキーとリポジトリを追加します。

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

docker-ceパッケージをインストールします。

sudo apt install docker-ce

インストールが完了したら、Dockerサービスを開始し、システムの起動時に毎回起動できるようにします。

systemctl start docker
systemctl enable docker

次に、Dockerコンテナを実行および管理するための通常のユーザー権限を付与します。

'mohammad'という名前の新しいユーザーを追加し、dockerグループに追加します。

useradd -m -s /bin/bash mohammad
usermod -a -G docker mohammad

次に、「mohammad」ユーザーとしてログインし、dockercontainerhello-worldを実行します。

su - mohammad
docker run hello-world

そして、以下のような結果が得られます。

ステップ2-Dockerのインストール-作成

このステップでは、GitHubからダウンロードできるバイナリファイルからdocker-composeを手動でインストールします。 composev3をサポートする最新のdocker-composeバージョンをインストールします。

最新の1.22.0バージョンのdocker-composeを使用してcurlコマンドを「/usr/ local / bin」ディレクトリにダウンロードし、chmodを使用して実行可能にします。

以下のコマンドを実行します。

sudo curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

また、最新のdocker-composeバージョンがインストールされています。以下のdocker-composeコマンドを実行して確認してください。

docker-compose version

結果は次のとおりです。

ステップ3-NodejsExpressプロジェクトをセットアップする

このセクションでは、Nodejsアプリケーション環境を構成します。 'express-generator'を使用して生成できる単純なnodejsアプリケーションを使用します。

'mohammad'ユーザーにログインします。

su - mohammad

'project'という名前の新しいディレクトリを作成し、そこに移動します。

mkdir -p project
cd project

次に、以下の「express」コマンドを使用して、簡単なhello-wordnodejsアプリケーションを生成します。

express hakase-app

注:

nodejs、npm、および「express-generator」パッケージがシステムにインストールされていることを確認してください。

そして、「hakase-app」ディレクトリにシンプルなnodejsexpressアプリがあります。

次に、「hakase-app」nodejsアプリケーション用のカスタムDockerイメージを作成します。

'project'ディレクトリの下で、vimを使用して新しい'Dockerfile'を作成します。

vim Dockerfile

次のDockerイメージ構成をそこに貼り付けます。

FROM node:8.11.4-alpine

RUN mkdir -p /src
RUN npm install express-generator -g

WORKDIR /src
ADD hakase-app/package.json /src/package.json
RUN npm install

EXPOSE 3000
CMD node hakase-app/bin/www

保存して終了します。

以下の仕様で、nodejsアプリケーション用の新しいカスタムDockerイメージを作成しています。

  • カスタムイメージは、公式のnodejsイメージ8.11.4アルパインバージョンに基づいています。
  • プロジェクト「/src」の新しいディレクトリを作成しています。
  • 「express-generator」をカスタムイメージにインストールします。
  • アプリケーションプロファイルと必要なパッケージを含む「package.json」ファイルを「/src」ディレクトリに追加します。
  • 「package.json」ファイルに基づいて、プロジェクトに必要なすべてのnodejsパッケージをインストールします。
  • デフォルトのexecstartコマンド'nodehakase-app / bin/www'を使用してポート3000をエクスポートします。

次に、docker-composeスクリプトに基づいてカスタムイメージを作成します。

vimを使用して新しいymlファイル「docker-compose.yml」を作成します。

vim docker-compose.yml

次の構成をそこに貼り付けます。

version: '3'

services:

  hakase-app:
    build: .
    volumes:
      - ./hakase-app:/src/hakase-app
    ports:
      - "3000:3000"
    restart: always

保存して終了します。

「hakase-app」という名前の新しいDockerサービスを作成すると同時に、プロジェクトディレクトリの「Dockerfile」に基づいてカスタムDockerイメージを構築し、hakase-appアプリケーションファイルを自動的にマウントします。

NodejsExpressのセットアップが完了しました。

ステップ4-プロジェクトをビルドして実行する

'mohammad'ユーザーとしてログインし、'project'ディレクトリに移動します

su - mohammad
cd project/

以下のdocker-composeコマンドを使用して、イメージをビルドし、dockerservicehakase-appを作成します。

docker-compose build

これで、次のような結果が得られます。

そして、完了したら、「hakase-app」dockerサービスを実行します。

docker-compose up -d

結果は次のとおりです。

NodejsアプリケーションのカスタムDockerイメージが作成され、hakase-appdockerサービスが稼働しています。

ステップ5-テスト

サーバーで利用可能なDockerイメージを表示します。

docker-compose images
docker images

Nodejsアプリケーション用の新しいカスタムDockerイメージが作成されました。

実行中のDockerサービスを表示します。

docker-compose ps
docker ps

Nodejsアプリは、ホストポート3000で稼働しています。

Webブラウザーを開き、サーバーのIPアドレスとポートを入力します。

http://10.0.15.2:3000/

そして、あなたは簡単なエクスプレスページを手に入れるでしょう。

Ubuntu18.04でのNodejsExpressアプリケーションのDockerizingが正常に完了しました。


Ubuntu
  1. UbuntuにDockerEngineをインストールする方法:ステップバイステップガイド

  2. Ubuntu16.04にDockerをインストールする方法

  3. Ubuntu 18.04 / Ubuntu 18.10 /Ubuntu19.04にDockerをインストールする方法

  1. UbuntuにPostgreSQLをインストールする:わかりやすいガイド

  2. Ubuntu 20.04にqtをインストールします-ステップバイステップガイド?

  3. Ubuntu 20.04にPsensor温度監視アプリケーションをインストールします-ステップバイステップガイド?

  1. Ubuntu18.04にDockerをインストールする方法

  2. Ubuntu18.04にKubernetesをインストールする方法

  3. Ubuntu18.04にDockerComposeをインストールする方法