логотип PurpleSchool
логотип PurpleSchool

Работа с Docker Engine

Автор

Олег Марков

Введение

Добро пожаловать в мир Docker! Если вы хотите освоить создание, развертывание и управление контейнерами, то Docker Engine — это именно то, что вам нужно. Docker Engine — это программное обеспечение, которое позволяет вам разворачивать приложения в изолированных контейнерах. Это упрощает их развертывание и масштабирование, освобождая вас от зависимостей платформы, на которой они работают. В этой статье я помогу вам разобраться в основах работы с Docker Engine, начиная с его установки и заканчивая более сложными примерами управления.

Установка Docker Engine

Прежде чем начать работать с Docker Engine, его нужно установить. Смотрите, я покажу вам, как это сделать на разных операционных системах.

Установка на Windows

  1. Загрузите установочный файл Docker Desktop с официального сайта.
  2. Запустите установочный файл и следуйте инструкциям на экране.

Установка на macOS

  1. Скачайте установочный файл Docker Desktop для macOS.
  2. Перетащите Docker в папку "Программы" и запустите приложение.

Установка на Linux

Покажу вам пример установки на Ubuntu:

# Сначала обновляем пакеты
sudo apt-get update
# Устанавливаем необходимые пакеты для работы Docker
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
# Добавляем Docker GPG ключ
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# Добавляем Docker репозиторий
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# Обновляем пакеты вновь после добавления репозитория
sudo apt-get update
# Устанавливаем Docker
sudo apt-get install docker-ce

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

Основные команды Docker Engine

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

Создание и управление контейнерами

Запуск контейнера

Чтобы запустить контейнер, используйте команду docker run. Давайте посмотрим пример:

# Запуск контейнера на основе образа nginx
docker run -d -p 8080:80 nginx

// Здесь -d запускает контейнер в фоновом режиме, а -p перенаправляет порты

Список работающих контейнеров

Команда docker ps позволит вам увидеть активные контейнеры:

# Показать все работающие контейнеры
docker ps

Остановка контейнера

Чтобы остановить контейнер, используется команда docker stop:

# Остановка контейнера с указанным ID
docker stop <container_id>

// Замените <container_id> на реальный ID вашего контейнера

Работа с образами

Скачивание образа

Команда docker pull используется для загрузки образов из Docker Hub:

# Загрузка последней версии образа alpine
docker pull alpine

Удаление образа

Если образ более не нужен, вы можете его удалить с помощью команды docker rmi:

# Удаление образа по имени
docker rmi alpine

Теперь, когда вы освоили базовые команды Docker Engine, давайте перейдем к более сложным аспектам.

Работа с сетями в Docker

Docker позволяет создавать сети для связывания ваших контейнеров. Давайте разберем, как это сделать.

Создание сети

# Создание пользовательской сети
docker network create my_network

Присоединение контейнера к сети

# Присоединение контейнера к определенной сети
docker network connect my_network <container_id>

Просмотр всех сетей

Используйте команду docker network ls, чтобы увидеть список всех сетей:

# Выводит список всех сетей
docker network ls

Заключение

Теперь, когда вы знаете, как установить Docker Engine и управляете контейнерами и сетями, вы готовы к следующему уровню! Docker предоставляет множество возможностей для создания изолированных и стабильных сред выполнения. Это лишь небольшая часть того, что вы можете сделать с Docker Engine. Продолжайте изучать и открывать для себя новые возможности! Docker станет неотъемлемым инструментом в вашем арсенале для разработки и развертывания приложений.

Карта развития разработчика

Получите полную карту развития разработчика по всем направлениям: frontend, backend, devops, mobile