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
- ルート権限
何をするか
- Docker CEをインストール
- Docker-Composeをインストール
- Nodejs Expressプロジェクトをセットアップ
- プロジェクトをビルド
- テスト
ステップ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-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’ユーザーとしてログインし、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以下が結果です。

ステップ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アプリが得られます。

次に、’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 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保存して終了します。

‘hakase-app’という新しいdockerサービスを作成しており、同時にプロジェクトディレクトリの’Dockerfile’に基づいてカスタムdockerイメージをビルドし、hakase-appアプリケーションファイルを自動的にマウントします。
Nodejs Expressのセットアップが完了しました。
ステップ4 - プロジェクトをビルドして実行
‘mohammad’ユーザーとしてログインし、’project’ディレクトリに移動します。
su - mohammad
cd project/以下のdocker-composeコマンドを使用してイメージをビルドし、dockerサービスhakase-appを作成します。
docker-compose build以下のような結果が得られます。

完了したら、’hakase-app’ dockerサービスを実行します。
docker-compose up -d以下が結果です。

Nodejsアプリケーションのカスタムdockerイメージが作成され、hakase-app dockerサービスが起動しています。
ステップ5 - テスト
サーバー上の利用可能なdockerイメージを表示します。
docker-compose images
docker images
Nodejsアプリケーションの新しいカスタムdockerイメージが作成されました。
実行中のdockerサービスを表示します。
docker-compose ps
docker psNodejsアプリがホストポート3000で起動しています。
ウェブブラウザを開き、サーバーのIPアドレスとポートを入力します。
そして、シンプルなexpressページが表示されます。
Ubuntu 18.04上でNodejs ExpressアプリケーションのDocker化が成功裏に完了しました。
参考
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。