Введение
Это исчерпывающее руководство по Docker предоставляет разработчикам и системным администраторам необходимые знания для внедрения технологии контейнеров. Охватывая основные концепции Docker, процедуры установки и практические примеры, обучающиеся приобретут практические навыки в современных методах развертывания программного обеспечения и виртуализации.
Основы Docker
Введение в основы Docker
Docker — это мощная технология контейнеров, которая революционизирует развертывание программного обеспечения и виртуализацию приложений. Она позволяет разработчикам упаковывать приложения со всеми их зависимостями в стандартизированные единицы, называемые контейнерами.
Основные концепции технологии контейнеров
graph LR
A[Изображение Docker] --> B[Контейнер]
B --> C[Развертывание приложения]
B --> D[Изоляция]
| Концепция | Описание |
|---|---|
| Изображение Docker | Легковесный, автономный исполняемый пакет |
| Контейнер | Запускаемый экземпляр изображения |
| Dockerfile | Скрипт, определяющий конфигурацию изображения |
Базовая архитектура Docker
Контейнеры обеспечивают легкую виртуализацию, совмещая ядро хост-системы, при этом сохраняя изоляцию приложений. Этот подход отличается от традиционных виртуальных машин.
Установка на Ubuntu 22.04
## Обновить индекс пакетов
sudo apt update
## Установить зависимости
sudo apt install apt-transport-https ca-certificates curl software-properties-common
## Добавить ключ GPG Docker
curl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
## Настроить репозиторий
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
## Установить Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io
Первый пример контейнера Docker
## Скачать образ Ubuntu
docker pull ubuntu:latest
## Запустить интерактивный контейнер
docker run -it ubuntu:latest /bin/bash
## Внутри контейнера
apt update
apt install nginx -y
exit
Настройка окружения Docker
Подготовка Ubuntu 22.04 для установки Docker
graph LR
A[Обновление системы] --> B[Установка зависимостей]
B --> C[Настройка репозитория Docker]
C --> D[Установка Docker Engine]
D --> E[Конфигурация Docker]
Требования к системе
| Требование | Спецификация |
|---|---|
| ОС | Ubuntu 22.04 LTS |
| Архитектура | 64-разрядная |
| Ядро | 5.10+ |
| ОЗУ | Минимально 2 ГБ |
Полный скрипт установки Docker
## Обновить пакеты системы
sudo apt update && sudo apt upgrade -y
## Удалить конфликтующие пакеты
sudo apt remove docker docker-engine docker.io containerd runc
## Установить необходимые зависимости
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release
## Добавить официальный ключ GPG Docker
curl -fsSL | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
## Настроить стабильный репозиторий
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
## Установить Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
## Проверить установку
sudo docker --version
Конфигурация после установки
## Создать группу пользователей docker
sudo groupadd docker
## Добавить текущего пользователя в группу docker
sudo usermod -aG docker $USER
## Включить службу Docker
sudo systemctl enable docker.service
sudo systemctl start docker.service
## Проверить работоспособность Docker
docker run hello-world
Установка Docker Compose
## Скачать Docker Compose
sudo curl -L " -s)-$(uname -m)" -o /usr/local/bin/docker-compose
## Применить разрешения на выполнение
sudo chmod +x /usr/local/bin/docker-compose
## Проверить установку
docker-compose --version
Управление контейнерами
Обзор жизненного цикла контейнера
graph LR
A[Загрузка образа] --> B[Создание контейнера]
B --> C[Запуск контейнера]
C --> D[Работа контейнера]
D --> E[Остановка контейнера]
E --> F[Удаление контейнера]
Основные команды Docker для контейнеров
| Команда | Функция |
|---|---|
| docker run | Создание и запуск контейнера |
| docker ps | Список запущенных контейнеров |
| docker stop | Остановка запущенного контейнера |
| docker rm | Удаление контейнера |
| docker exec | Выполнение команды в контейнере |
Создание и управление контейнерами
## Загрузка образа Ubuntu
docker pull ubuntu:latest
## Запуск интерактивного контейнера
docker run -it --name my-ubuntu ubuntu:latest /bin/bash
## Список всех контейнеров
docker ps -a
## Запуск остановленного контейнера
docker start my-ubuntu
## Остановка запущенного контейнера
docker stop my-ubuntu
## Удаление контейнера
docker rm my-ubuntu
Расширенные операции с контейнерами
## Запуск контейнера в фоновом режиме
docker run -d --name nginx-server nginx:latest
## Мапирование порта контейнера на хост
docker run -p 8080:80 -d nginx:latest
## Просмотр деталей контейнера
docker inspect nginx-server
## Просмотр логов контейнера
docker logs nginx-server
## Выполнение команды в работающем контейнере
docker exec -it nginx-server bash
Управление ресурсами контейнера
## Ограничение ресурсов контейнера
docker run -d \
--name limited-container \
--cpus="1" \
--memory="512m" \
nginx:latest
## Мониторинг использования ресурсов контейнера
docker stats
Конфигурация сети контейнера
## Создание пользовательской сети
docker network create my-network
## Запуск контейнера в определенной сети
docker run --network=my-network -d nginx:latest
Резюме
Docker представляет собой революционный подход к развертыванию программного обеспечения, предлагая лёгкие и переносимые контейнеры, которые оптимизируют разработку приложений и управление инфраструктурой. Овладев основными принципами Docker, процессами установки и методами управления контейнерами, специалисты могут значительно улучшить свои возможности разработки и развертывания программного обеспечения в различных вычислительных средах.



