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

Контейнеры легкие и портативные, что означает, что вы можете запускать их на любой машине, на которой установлен Docker.

В этом посте я покажу вам, как использовать некоторые расширенные функции Docker, такие как:

  • Docker Compose: инструмент, позволяющий определять и запускать многоконтейнерные приложения с помощью файла YAML.
  • Docker Networks: функция, обеспечивающая связь между контейнерами и внешними сетями.
  • Docker Volumes: функция, которая позволяет сохранять данные при перезапуске контейнера и обмениваться данными между контейнерами.
  • Секреты Docker: функция, которая помогает защитить конфиденциальные данные, такие как пароли и токены.

Установка Докера

Чтобы следовать этому сообщению, на вашем компьютере должен быть установлен Docker. Скачать его можно с https://www.docker.com/get-started.

Давайте начнем!

Шаг 1. Создайте простое веб-приложение с использованием HTML и CSS.

Мы будем использовать то же веб-приложение, которое мы создали в предыдущем посте. Вы можете использовать любой текстовый редактор или IDE по вашему выбору. Сохраните файлы в папке с именем my-website.

Вот HTML-файл (index.html):

<html>
<head>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <h1>Hello, Docker!</h1>
    <p>This is a simple web application running inside a container.</p>
</body>
</html>
body {
    background-color: lightblue;
}

h1 {
    color: white;
    text-align: center;
}

p {
    font-family: verdana;
    font-size: 20px;
}

Шаг 2. Создайте файл Dockerfile в той же папке.

Dockerfile — это текстовый файл, содержащий инструкции по сборке образа из вашего приложения. Образ — это снимок вашего приложения и его зависимостей, который можно использовать для создания контейнеров. Вот пример Dockerfile для вашего веб-приложения:

# Use an official nginx image as the base
FROM nginx:alpine

# Copy the web files to the image
COPY my-website /usr/share/nginx/html

# Expose port 80 for the web server
EXPOSE 80

Шаг 3. Создайте образ из файла Dockerfile с помощью команды сборки docker.

Это создаст образ с именем my-website:v1, который вы сможете использовать для запуска контейнеров.

docker build -t my-website:v1 .

Шаг 4. Запустите контейнер из образа с помощью команды запуска docker.

Это запустит контейнер, который запускает ваше веб-приложение на порту 80.

docker run -dp 80:80 my-website:v1

Шаг 5. Откройте браузер и перейдите по адресу http://localhost, чтобы увидеть, как ваше веб-приложение работает внутри контейнера.

Вы должны увидеть что-то вроде этого:

Поздравляем! Вы успешно создали и запустили свое первое приложение Docker. 🎉

Теперь давайте посмотрим, как мы можем использовать некоторые расширенные функции Docker для улучшения нашего рабочего процесса.

Шаг 6. Определите и запустите многоконтейнерное приложение с помощью Docker Compose.

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

Например, предположим, что мы хотим добавить службу базы данных в наше веб-приложение. Мы можем использовать MongoDB в качестве нашей базы данных и подключить ее к нашему веб-приложению с помощью Docker Compose.

Во-первых, нам нужно создать новую папку с именем my-app и переместить в нее папку my-website. Затем нам нужно создать новый файл с именем docker-compose.yml в папке my-app. Этот файл будет содержать конфигурацию нашего многоконтейнерного приложения.

Вот пример файла docker-compose.yml:

version: "3"
services:
  web:
    build: ./my-website
    ports:
      - "80:80"
    depends_on:
      - db
  db:
    image: mongo
    volumes:
      - db-data:/data/db
volumes:
  db-data: