Dockerガイド · 1 min read · Feb 05, 2026

Dockerガイド: Ubuntu 18.04上でNodejs ExpressアプリケーションをDocker化する

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

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

このチュートリアルでは、Ubuntu 18.04で既存のNodejs ExpressアプリケーションプロジェクトのDockerイメージを作成する方法を示します。NodejsアプリケーションのDocker化について学び、その後、docker-composeスクリプトを使用してアプリケーションをDocker環境にコンテナとしてデプロイします。

前提条件

  • Ubuntu 18.04
  • ルート権限

何をするか

  1. Docker CEをインストール
  2. Docker-Composeをインストール
  3. Nodejs Expressプロジェクトをセットアップ
  4. プロジェクトをビルド
  5. テスト

ステップ1 - Docker CEをインストール

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

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

sudo apt install docker-ce

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

systemctl start docker  
systemctl enable docker

Dockerを開始

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

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

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

今、’mohammad’ユーザーとしてログインし、dockerコンテナhello-worldを実行します。

su - mohammad  
docker run hello-world

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

ユーザーを追加してテスト

ステップ2 - Docker-Composeをインストール

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

curlコマンドを使用して最新の1.22.0バージョンのdocker-composeを’/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

以下が結果です。

Docker Composeをインストール

ステップ3 - Nodejs Expressプロジェクトをセットアップ

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

‘mohammad’ユーザーとしてログインします。

su - mohammad

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

mkdir -p project  
cd project

次に、以下の’express’コマンドを使用してシンプルなhello-world nodejsアプリケーションを生成します。

express hakase-app

注意:

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

そして、’hakase-app’ディレクトリにシンプルなnodejs expressアプリが得られます。

Nodejs Expressプロジェクトをインストール

次に、’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

保存して終了します。

npmを使用してアプリケーションをインストール

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

  • カスタムイメージは公式のnodejsイメージ8.11.4 alpineバージョンに基づいています。
  • プロジェクト用の新しいディレクトリ’/src’を作成しています。
  • カスタムイメージに’express-generator’をインストールします。
  • アプリケーションプロファイルと必要なパッケージを含む‘package.json’ファイルを’/src’ディレクトリに追加します。
  • ‘package.json’ファイルに基づいてプロジェクトに必要なすべてのnodejsパッケージをインストールします。
  • デフォルトの実行開始コマンド’node hakase-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

保存して終了します。

docker compose ymlファイルを作成

‘hakase-app’という新しいdockerサービスを作成しており、同時にプロジェクトディレクトリの’Dockerfile’に基づいてカスタムdockerイメージをビルドし、hakase-appアプリケーションファイルを自動的にマウントします。

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

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

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

su - mohammad  
cd project/

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

docker-compose build

以下のような結果が得られます。

dockerプロジェクトをビルド

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

docker-compose up -d

以下が結果です。

docker-compose upを使用

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

ステップ5 - テスト

サーバー上の利用可能なdockerイメージを表示します。

docker-compose images  
docker images

利用可能なdockerイメージを表示

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

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

docker-compose ps  
docker ps

Nodejsアプリがホストポート3000で起動しています。

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

http://10.0.15.2:3000/

そして、シンプルなexpressページが表示されます。

Ubuntu 18.04上でNodejs ExpressアプリケーションのDocker化が成功裏に完了しました。

参考

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。