Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills
30.10.2024

Як використовувати 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

  1. Створіть каталог проекту:
create a new project folder: mkdir my-docker-app
cd my-docker-app
  1. Створіть файл package.json для вашого Node.js додатку:
npm init -y
  1. Створіть файл server.js:
touch server.js
  1. Додайте наступний вміст до файлу 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}/); });

Крок 2: Напишіть Docker-файл

Після того, як у вас є основний додаток, наступним кроком буде створення Docker-файлу, який буде використано для створення образу Docker для цього додатка

  1. Створіть Docker-файл у кореневому каталозі проекту:
tap Dockerfile
  1. Додайте інструкції до 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

  1. У каталозі проекту запустіть наступну команду:
docker build -t my-docker-app .

Ось що робить команда

  • t my-docker-app.
  • Кнопка . вказує поточний каталог (де знаходиться Docker-файл).

Docker крок за кроком опрацює Docker-файл, збираючи образ відповідно до ваших інструкцій. Якщо все налаштовано правильно, ви побачите повідомлення про успішне створення образу

Крок 4: Запустіть контейнер Docker

Після того, як образ зібрано, ви можете створити і запустити контейнер за допомогою команди docker run

docker run -p 3001:3000 my-docker-app
  • p 3000:3000: Зіставляє порт 3000 на вашій локальній машині з портом 3000 у контейнері.
  • my-docker-app: Назва створеного вами образу Docker.

Ви повинні побачити повідомлення: Сервер працює за адресою http://0.0.0.0:3001/.Щоб протестувати програму, відкрийте веб-браузер або скористайтеся curl для відвідування

Ви повинні побачити напис “Hello World” .

Крок 5: Надішліть зображення Docker до Docker Hub (необов’язково)

Якщо ви хочете поділитися своїм зображенням з іншими або розмістити його на сервері, ви можете надіслати його на Docker Hub

  1. Спочатку увійдіть до Docker Hub:
docker Login
  1. Потім позначте ваше зображення своїм ім’ям користувача в Docker Hub:
docker tag my-docker-app your-dockerhub-username/my-docker-app
  1. Надішліть зображення на Docker Hub:
docker push your-dockerhub-username/my-docker-app

Ваш образ Docker тепер публічно (або приватно) доступний на Docker Hub

Кращі практики для Dockerfile

  • Використовуйте невеликі та специфічні базові зображення: якщо можливо, використовуйте легкі базові зображення, такі як альпійські, щоб зменшити розмір зображення.
  • Мінімізуйте кількість шарів: Кожна команда у докерфайлі створює новий шар. Намагайтеся мінімізувати кількість шарів, об’єднуючи команди, коли це можливо (наприклад, використовуйте && для об’єднання декількох команд в один оператор RUN ).
  • Використовуйте багатоетапне збирання: це допомагає зменшити кінцевий розмір образу за рахунок відокремлення середовища збирання від середовища виконання.
  • Використовуйтекешування: Docker кешує кожен шар образу, тому повторне використання тих самих команд (наприклад, COPY і RUN) допомагає пришвидшити наступні збірки.

Висновок: Dockerize за допомогою AlexHost

Докер-файли роблять ваші програми портативними та масштабованими, а VPS на базі NVMe від AlexHost гарантує швидкі збірки та розгортання. Створюйте економні Docker-файли, використовуйте багатоетапні збірки та забезпечуйте безпеку за допомогою UFW. Незалежно від того, чи це додаток Node.js, чи WordPress, кореневий доступ та підтримка AlexHost роблять роботу з Docker легкою справою – контейнеризуйте свій додаток та розгортайте його з упевненістю вже сьогодні!

Перевірте свої навички на всіх наших хостингових послугах та отримайте знижку 15%!

Використовуйте код під час оформлення замовлення:

Skills