Docker Guide · 4 min read · Feb 05, 2026

Руководство по Docker: Докеризация приложения Nodejs Express на Ubuntu 18.04

Docker — это проект с открытым исходным кодом, который предоставляет открытую платформу для разработчиков и системных администраторов для создания, упаковки и запуска приложений в любом месте в виде легковесного контейнера. Docker автоматизирует развертывание приложений внутри программных контейнеров.

Nodejs — это среда выполнения JavaScript с открытым исходным кодом. Это многоплатформенная среда выполнения, которую можно установить на Linux, Windows, MacOS, FreeBSD и т. д. Nodejs очень полезен для создания как серверных, так и настольных приложений.

В этом учебном пособии я покажу вам, как создать образ docker для существующего проекта приложения Nodejs Express в Ubuntu 18.04. Мы узнаем о докеризации приложения Nodejs, а затем развернем приложение в виде контейнера в среде docker с помощью скрипта docker-compose.

Предварительные условия

  • Ubuntu 18.04
  • Привилегии root

Что мы будем делать

  1. Установить Docker CE
  2. Установить Docker-Compose
  3. Настроить проект Nodejs Express
  4. Собрать проект
  5. Тестирование

Шаг 1 - Установить Docker CE

В этом учебном пособии мы установим редакцию сообщества docker-ce из репозитория docker. Мы установим редакцию сообщества docker-ce и docker-compose, который поддерживает версию файла compose 3.

Перед установкой docker-ce установите необходимые зависимости docker с помощью команды apt.

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

На этом шаге мы установим docker-compose вручную из двоичного файла, который можно скачать с GitHub. Мы установим последнюю версию docker-compose, которая будет поддерживать compose v3.

Скачайте последнюю версию 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

Следующий результат.

Установить Docker Compose

Шаг 3 - Настроить проект Nodejs Express

В этом разделе мы настроим среду приложения Nodejs. Мы будем использовать простое приложение nodejs, которое можно сгенерировать с помощью ‘express-generator’.

Войдите в пользователя ‘mohammad’.

su - mohammad

Создайте новую директорию с именем ‘project’ и перейдите в нее.

mkdir -p project  
cd project

Теперь сгенерируйте простое приложение hello-word nodejs с помощью команды ‘express’ ниже.

express hakase-app

Примечание:

Убедитесь, что nodejs, npm и пакеты ‘express-generator’ установлены в системе.

И вы получите простое приложение nodejs express в директории ‘hakase-app’.

Установить проект Nodejs Express

Далее мы создадим наш собственный образ docker для приложения ‘hakase-app’ nodejs.

В директории ‘project’ создайте новый ‘Dockerfile’ с помощью vim.

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 для установки приложения

Мы создаем новый пользовательский образ docker для нашего приложения nodejs со следующими спецификациями.

  • Пользовательский образ основан на официальном образе nodejs версии 8.11.4 alpine.
  • Мы создаем новую директорию для нашего проекта ‘/src’.
  • Устанавливаем ‘express-generator’ в пользовательский образ.
  • Добавляем файл ‘package.json’, который содержит профиль приложения и необходимые пакеты, в директорию ‘/src’.
  • Устанавливаем все необходимые пакеты nodejs для проекта на основе файла ‘package.json’.
  • Экспортируем порт 3000 с командой запуска по умолчанию ‘node hakase-app/bin/www’.

Далее мы создадим пользовательский образ на основе скрипта docker-compose.

Создайте новый yml файл ‘docker-compose.yml’ с помощью vim.

vim docker-compose.yml

Вставьте следующую конфигурацию.

version: '3'

services:

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

Сохраните и выйдите.

Создать файл yml для docker compose

Мы создаем новую службу docker с именем ‘hakase-app’, и в то же время мы строим пользовательский образ docker на основе ‘Dockerfile’ в директории проекта и автоматически смонтируем файлы приложения hakase-app.

Настройка Nodejs Express завершена.

Шаг 4 - Собрать и запустить проект

Войдите как пользователь ‘mohammad’ и перейдите в директорию ‘project’

su - mohammad  
cd project/

Соберите образ и создайте службу docker hakase-app, используя команду docker-compose ниже.

docker-compose build

Теперь вы получите результат, как показано ниже.

Собрать проект docker

И когда это завершится, запустите службу docker ‘hakase-app’.

docker-compose up -d

Следующий результат.

Используйте docker-compose up

Пользовательский образ docker для нашего приложения Nodejs был создан, и служба docker hakase-app запущена.

Шаг 5 - Тестирование

Показать доступные образы docker на сервере.

docker-compose images  
docker images

Показать доступные образы docker

Новый пользовательский образ docker для нашего приложения Nodejs был создан.

Показать запущенную службу docker.

docker-compose ps  
docker ps

Приложение Nodejs запущено и работает на порту 3000 хоста.

Откройте веб-браузер и введите IP-адрес сервера с портом.

http://10.0.15.2:3000/

И вы получите простую страницу express.

Докеризация приложения Nodejs Express на Ubuntu 18.04 была успешно завершена.

Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.