Установка и запуск контейнеров Docker на Ubuntu

DockerBeginner
Практиковаться сейчас

Введение

Это исчерпывающее руководство по 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, процессами установки и методами управления контейнерами, специалисты могут значительно улучшить свои возможности разработки и развертывания программного обеспечения в различных вычислительных средах.