Docker - Настройка Node.js: Пособие для начинающих

Здравствуйте, ambitные разработчики! Сегодня мы отправимся в увлекательное путешествие в мир Docker и Node.js. Как ваш доброжелательный邻居-преподаватель информатики, я здесь, чтобы провести вас через это приключение шаг за шагом. Не волнуйтесь, если вы новички в программировании - мы начнем с самых азов и будем подниматься постепенно. Так что возьмите杯咖啡 (или чай, если это ваш выбор), и давайте окунемся в это!

Docker - Setting Node.js

Что такое Docker?

Прежде чем мы углубимся в детали, давайте поговорим о Docker. Представьте, что вы переезжаете в новый дом. Вместо того чтобы.pack everything in boxes of different shapes and sizes, что если бы вы могли.put all your belongings in standardized containers that fit perfectly on any truck or ship? Это essentially what Docker does for software!

Docker - это платформа, которая позволяет вам.pack your application and all its dependencies into a standardized unit called a container. Эти контейнеры могут работать стабильно на любой системе, что упрощает разработку, отправку и запуск приложений.

Почему использовать Docker с Node.js?

Теперь вы можете задаться вопросом: "Why should I bother with Docker for my Node.js application?" Ну, позвольте мне рассказать вам一个小кую историю.

Once upon a time, there was a developer named Sarah. She built a fantastic Node.js app on her laptop. It worked perfectly! But when she tried to run it on her team's server, it crashed. The problem? Different versions of Node.js and some missing dependencies. Sarah spent days trying to fix it.

If Sarah had used Docker, she could have avoided this headache. Docker ensures that your application runs in the same environment everywhere – be it your laptop, your colleague's desktop, or a server in the cloud.

Настройка Docker для Node.js

Хорошо, давайте натянем рукава и脏 our hands with some actual setup!

Шаг 1: Установите Docker

First things first, we need to install Docker on our machine. Head over to the Docker website and download Docker Desktop for your operating system. Follow the installation instructions, and you'll be ready to go!

Шаг 2: Создайте приложение Node.js

Давайте создадим простое приложение Node.js для контейнеризации. Создайте новую директорию для вашего проекта и перейдите в нее:

mkdir my-node-app
cd my-node-app

Теперь создадим простой package.json файл:

npm init -y

Эта команда создает базовый package.json файл с-default values. Далее, установим Express, популярный фреймворк для Node.js:

npm install express

Теперь создайте файл с именем app.js и добавьте следующий код:

const express = require('express');
const app = express();
const port = 3000;

app.get('/', (req, res) => {
res.send('Hello, Docker!');
});

app.listen(port, () => {
console.log(`App listening at http://localhost:${port}`);
});

Это простое приложение создает веб-сервер, который отвечает "Hello, Docker!" при посещении корневого URL.

Шаг 3: Создайте Dockerfile

Теперь comes the exciting part – creating our Dockerfile! A Dockerfile is like a recipe that tells Docker how to build our container. Создайте файл с именем Dockerfile (без расширения) в директории вашего проекта и добавьте следующий:

# Используем официальный Node runtime в качестве родительского образа
FROM node:14

# Установим рабочую директорию в контейнере
WORKDIR /usr/src/app

# Копируем package.json и package-lock.json
COPY package*.json ./

# Устанавливаем зависимости
RUN npm install

# Копируем оставшуюся часть кода приложения
COPY . .

# Делаем порт 3000 доступным извне контейнера
EXPOSE 3000

# Определяем команду для запуска приложения
CMD [ "node", "app.js" ]

Давайте разберем это:

  • FROM node:14: Это specifies the base image we're using – in this case, Node.js version 14.
  • WORKDIR /usr/src/app: Это устанавливает рабочую директорию внутри контейнера.
  • COPY package*.json ./: Это копирует наши файлы package.json в контейнер.
  • RUN npm install: Это устанавливает наши зависимости внутри контейнера.
  • COPY . .: Это копирует оставшуюся часть нашего кода приложения в контейнер.
  • EXPOSE 3000: Это делает порт 3000 доступным для доступа извне контейнера.
  • CMD [ "node", "app.js" ]: Это specifies the command to run our application.

Шаг 4: Постройте и запустите Docker контейнер

Теперь, когда у нас есть наш Dockerfile, давайте построим наш Docker образ:

docker build -t my-node-app .

Эта команда строит Docker образ и tagging it as my-node-app. The . в конце命令 Docker ищет Dockerfile в текущей директории.

Как только сборка будет завершена, мы можем запустить наш контейнер:

docker run -p 3000:3000 my-node-app

Эта команда запускает наш контейнер и remaps port 3000 in the container to port 3000 on our host machine.

Поздравляю! Теперь вы должны быть able to visit http://localhost:3000 в вашем веб-браузере и увидеть "Hello, Docker!"

Общие команды Docker

Вот удобная таблица некоторых общих команд Docker, которые могут быть полезны:

Команда Описание
docker build Построить Docker образ из Dockerfile
docker run Запустить Docker контейнер
docker ps Список запущенных контейнеров
docker stop Остановить запущенный контейнер
docker rm Удалить контейнер
docker images Список Docker образов
docker rmi Удалить Docker образ
docker logs Просмотр логов для контейнера

Заключение

И вот мы и добрались до этого,folks! We've successfully set up a Node.js application using Docker. We've learned what Docker is, why it's useful, and how to create and run a Docker container for a Node.js app.

Remember, like learning any new skill, mastering Docker takes practice. Don't be discouraged if things don't work perfectly the first time. Keep experimenting, and before you know it, you'll be dockerizing applications like a pro!

As we wrap up, I want to share a little secret with you. When I first started with Docker, I accidentally typed docker run instead of docker build and spent an hour wondering why my changes weren't showing up. We all make mistakes – that's how we learn!

Keep coding, keep learning, and most importantly, have fun with it! Until next time, happy dockerizing!

Credits: Image by storyset