Docker — это платформа для контейнеризации приложений, позволяющая упаковывать ПО в изолированные среды. В этой статье рассмотрим установку Docker в Linux-системах, настройку демона и управление правами доступа.
Подготовка системы
Перед установкой Docker убедитесь, что:
- Система обновлена:
sudo apt update && sudo apt upgrade # для Debian-based
sudo dnf update # для RPM-based
- Установлены необходимые зависимости:
# для Debian-based
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
# для RHEL-based
sudo dnf install -y yum-utils lvm2

Установка Docker
Добавление официального репозитория Docker
Docker предоставляет собственные репозитории для большинства дистрибутивов.
Для Debian/Ubuntu:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
Для CentOS/RHEL:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Установка Docker Engine
sudo apt install docker-ce docker-ce-cli containerd.io # для Debian-based
sudo dnf install docker-ce docker-ce-cli containerd.io # для RHEL-based
Запуск и автозагрузка Docker
sudo systemctl start docker
sudo systemctl enable docker
Проверка статуса:
sudo systemctl status docker

Настройка Docker после установки
Управление правами доступа
По умолчанию Docker требует sudo
. Чтобы запускать команды без прав root, добавьте пользователя в группу docker
:
sudo usermod -aG docker $USER
newgrp docker # Обновление групп без перезагрузки
Проверка:
docker run hello-world

Настройка демона Docker
Конфигурация Docker хранится в:
/etc/docker/daemon.json
(основной файл настроек).- Системные параметры (для systemd —
/etc/systemd/system/docker.service.d/override.conf
).
Пример настройки daemon.json
:
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
Применение изменений:
sudo systemctl restart docker
Выбор драйвера хранения
Docker поддерживает несколько драйверов:
overlay2
(рекомендуется для современных ядер).devicemapper
(устаревший, используется в старых системах).btrfs
,zfs
(для специфичных случаев).
Проверка текущего драйвера:
docker info | grep "Storage Driver"
Драйвер | Скорость запуска контейнера | Использование диска | Поддержка в ядре | Рекомендуемый случай использования |
---|---|---|---|---|
overlay2 | ⭐⭐⭐⭐⭐ (быстрейший) | ⭐⭐⭐⭐ (эффективный) | Linux 4.0+ | Стандартный выбор для новых систем |
aufs | ⭐⭐⭐⭐ | ⭐⭐⭐ | Требует патчей | Устаревшие Debian/Ubuntu |
devicemapper | ⭐⭐ | ⭐⭐ (громоздкий) | Все ядра | Только в RHEL/CentOS 7 (direct-lvm mode) |
btrfs | ⭐⭐⭐ | ⭐⭐⭐⭐ | Linux 3.18+ | Системы с btrfs-разделами |
zfs | ⭐⭐ | ⭐⭐⭐⭐⭐ (компактный) | Требует модуля | Серверы с ZFS-хранилищами |
Возможные проблемы и их решение
Ошибка доступа к демону
Got permission denied while trying to connect to the Docker daemon
Решение:
- Убедитесь, что пользователь в группе
docker
. - Перезапустите демон:
sudo systemctl restart docker
Конфликты с SELinux/AppArmor
Если контейнеры не запускаются:
sudo setenforce 0 # Временно отключить SELinux
Или настройте политики:
sudo ausearch -c 'docker' --raw | audit2allow -M my-docker
sudo semodule -i my-docker.pp
Заключение
Docker можно установить в любом Linux-дистрибутиве, используя официальные репозитории. Основные шаги:
- Добавить репозиторий Docker.
- Установить пакеты
docker-ce
,docker-ce-cli
,containerd.io
. - Настроить права доступа через группу
docker
. - Опционально изменить параметры демона в
/etc/docker/daemon.json
.
Рекомендации:
- Используйте
overlay2
для лучшей производительности. - Настройте логирование во избежание переполнения диска.
Дополнительный материал
Was this helpful?
0 / 0