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для лучшей производительности. - Настройте логирование во избежание переполнения диска.
Дополнительный материал
Было ли это полезно?
0 / 0