[Практика Docker] Создание службы Node

1. Установить узел

  1. Пожалуйста, ознакомьтесь с руководством на официальном сайте Alibaba Cloud:Как быстро развернуть проект Node.js. (Примечание: работайте в корневом каталоге)
  2. apt install nodejs, apt install npmВыполните два вышеуказанных именования для установки

После завершения установки выполните node -v, npm -v. Если версия появится, установка прошла успешно.

2. Создайте каталог проекта.

//如果当前目录在root
mkdir www2
mkdir www2/node
cd www2/node	//进入项目目录

3. Создайте проект

1. Инициализировать проект

npm init -y
npm i koa -s

2. Создайте файл app.js.

const Koa = require('koa')
const app = new Koa()
app.use(ctx => {
    
    
	ctx.body = 'Hello Docker'
})
app.listen(3000, () => {
    
    
	console.log('app started at http://localhost:3000/')
})

3. Создайте файл конфигурации Dockerfile.

#Dockerfile
#制定node镜像的版本
FROM node:10-alpine
#移动当前目录下面的文件到app目录下
ADD . /app/
#进入到app目录下面,类似cd
WORKDIR /app
#安装依赖
RUN npm install
#对外暴露的端口
EXPOSE 3000
#程序启动脚本
CMD ["node", "app.js"]

Описание файла Dockerfile:

  1. ОТ узла: 10-альпийский:
    • Используется официальный образ Node.js версии 10, основанный на Alpine Linux, облегченном дистрибутиве Linux.
  2. ДОБАВЛЯТЬ . /приложение/:
    • Копирует все файлы из текущего каталога (кроме тех, которые указаны в .dockerignore) в каталог /app/ контейнера.
  3. РАБОЧИЙ ПАРАМЕТР/приложение:
    • устанавливает рабочий каталог контейнера в /app/, что эквивалентно выполнению cd /app внутри контейнера.
  4. ЗАПУСК установки npm:
    • Выполните команду npm install в контейнере, чтобы установить зависимости, необходимые для приложения Node.js. Предполагается, что в вашем приложении есть файл package.json и зависимости уже определены в этом файле.
  5. ЭКСПОЗИЦИЯ 3000:
    • объявляет, что номер порта, который контейнер будет прослушивать при работе, равен 3000. Это всего лишь объявление, которое не сопоставляет порт с хостом автоматически. При запуске контейнера вам может потребоваться использовать параметр -p, чтобы сопоставить порт хоста с портом контейнера.
  6. CMD [“узел”, “app.js”]:
    • определяет команду, которая будет выполняться при запуске контейнера. Здесь он запускается node app.js, предполагая, что файл ввода вашего приложения — app.js. Это команда для запуска приложения Node.js.

4. Бегите

# 定制镜像
docker build -t node:itfeiniu .
# 运行
docker run -p 8013:3000 -d node:itfeiniu

изображение-20231203231700900

5. Описание каталога в контейнере

Согласно конфигурацииDockerfile, после создания контейнера в корневом каталоге виртуальной машины будет создан каталог app, и вы введет < a i=3> зависимости установки каталога. app

изображение-20231203232936575

Вы можете видеть, что в корневом каталоге действительно существует каталог app, а каталог app содержит исходный код проекта, который мы хотим бегать.

おすすめ

転載: blog.csdn.net/bobo789456123/article/details/134772904
おすすめ