Як використовувати Docker-файл для створення Docker-образу
Докеризуйте свої додатки на AlexHost: Освоєння Docker-файлів
Чому варто використовувати Docker на AlexHost? Docker-файл скриптує середовище вашого додатку, роблячи його портативним і послідовним. Високопродуктивні VPS і виділені сервери AlexHost зі сховищем NVMe і root-доступом забезпечують надійну платформу для створення і розгортання Docker-додатків, таких як Node.js або WordPress. Цей посібник пояснює, що таке Docker-файли, як їх створювати, збирати та запускати на AlexHost у 2025 році.
Покрокове керівництво по створенню Docker-файлу та створенню образу
Крок 1: Створіть свій проект
Для початку вам потрібен простий додаток для контейнеризації. Для цього прикладу ми створимо базовий додаток Node.js. Якщо у вас не встановлено Node.js, ви можете виконати ці кроки, щоб створити простий додаток Node.js
- Створіть каталог проекту:
- Створіть файл package.json для вашого Node.js додатку:
- Створіть файл server.js:
- Додайте наступний вміст до файлу server.js:
const http = require('http');
const hostname = '0.0.0.0';
const port = 3000;
const server = http.createServer((req, res) => { res.statusCode = 200;
res.setHeader('Content-Type', 'text/plain');
res.end('Hello Worldn'); });
server.listen(port, hostname, () => {
console.log(Server running at http://${hostname}:${port}/); });
Після того, як у вас є основний додаток, наступним кроком буде створення Docker-файлу, який буде використано для створення образу Docker для цього додатка
- Створіть Docker-файл у кореневому каталозі проекту:
- Додайте інструкції до Docker-файлу:
Ось простий Docker-файл для вашого додатка Node.js:
FROM node:14 # Use an official Node.js runtime as a base image
WORKDIR /app # Set the working directory inside the container
COPY package*.json ./ # Copy package.json and install dependencies
RUN npm install
COPY . . # Copy the rest of the application code
EXPOSE 3000 # Expose the port that the app runs on
CMD ["node", "server.js"] # Command to run the application
Пояснення докер-файлу:
- FROM: Вказує базовий образ, на основі якого буде створено ваш образ. В даному випадку це офіційний образ Node.js 14.
- WORKDIR: Вказує робочий каталог в контейнері. Всі наступні команди будуть виконуватися в цьому каталозі.
- COPY: Копіює файли з хост-машини в контейнер Docker
- COPY package*.json ./: Копіює файли package.json і package-lock.json .
- COPY ..: Копіює весь проект до контейнера.
- RUN: Виконує команду в контейнері, в даному випадку запускає npm install для встановлення залежностей Node.js.
- EXPOSE: Інформує Docker про те, що контейнер слухає порт 3000.
- CMD: Вказує команду для виконання в контейнері під час його запуску (в даному випадку запуск програми Node.js з node server.js).
Крок 3: Створіть образ Docker
Після того, як ви підготували ваш Docker-файл, ви можете зібрати образ Docker за допомогою команди docker build
- У каталозі проекту запустіть наступну команду:
Ось що робить команда
- –t my-docker-app.
- Кнопка . вказує поточний каталог (де знаходиться Docker-файл).
Docker крок за кроком опрацює Docker-файл, збираючи образ відповідно до ваших інструкцій. Якщо все налаштовано правильно, ви побачите повідомлення про успішне створення образу
Крок 4: Запустіть контейнер Docker
Після того, як образ зібрано, ви можете створити і запустити контейнер за допомогою команди docker run
- –p 3000:3000: Зіставляє порт 3000 на вашій локальній машині з портом 3000 у контейнері.
- my-docker-app: Назва створеного вами образу Docker.
Ви повинні побачити повідомлення: Сервер працює за адресою http://0.0.0.0:3001/.Щоб протестувати програму, відкрийте веб-браузер або скористайтеся curl для відвідування
Крок 5: Надішліть зображення Docker до Docker Hub (необов’язково)
Якщо ви хочете поділитися своїм зображенням з іншими або розмістити його на сервері, ви можете надіслати його на Docker Hub
- Спочатку увійдіть до Docker Hub:
- Потім позначте ваше зображення своїм ім’ям користувача в Docker Hub:
- Надішліть зображення на Docker Hub:
Ваш образ Docker тепер публічно (або приватно) доступний на Docker Hub
Кращі практики для Dockerfile
- Використовуйте невеликі та специфічні базові зображення: якщо можливо, використовуйте легкі базові зображення, такі як альпійські, щоб зменшити розмір зображення.
- Мінімізуйте кількість шарів: Кожна команда у докерфайлі створює новий шар. Намагайтеся мінімізувати кількість шарів, об’єднуючи команди, коли це можливо (наприклад, використовуйте && для об’єднання декількох команд в один оператор RUN ).
- Використовуйте багатоетапне збирання: це допомагає зменшити кінцевий розмір образу за рахунок відокремлення середовища збирання від середовища виконання.
- Використовуйтекешування: Docker кешує кожен шар образу, тому повторне використання тих самих команд (наприклад, COPY і RUN) допомагає пришвидшити наступні збірки.
Висновок: Dockerize за допомогою AlexHost
Докер-файли роблять ваші програми портативними та масштабованими, а VPS на базі NVMe від AlexHost гарантує швидкі збірки та розгортання. Створюйте економні Docker-файли, використовуйте багатоетапні збірки та забезпечуйте безпеку за допомогою UFW. Незалежно від того, чи це додаток Node.js, чи WordPress, кореневий доступ та підтримка AlexHost роблять роботу з Docker легкою справою – контейнеризуйте свій додаток та розгортайте його з упевненістю вже сьогодні!