Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код: Skills Начать
Рубрики
Linux Администрация

Как установить Docker на CentOS: полное пошаговое руководство

Docker принципиально изменил способ разработки, доставки и запуска приложений. Упаковывая программное обеспечение в легкие портативные контейнеры, Docker устраняет классическую проблему «работает на моей машине» и значительно упрощает как рабочие процессы разработки, так и развертывание в production. Если вы используете CentOS и хотите использовать возможности контейнеризации, это подробное руководство проведет вас через каждый шаг — от обновления свежей системы до продвинутой конфигурации.

Независимо от того, развертываете ли вы одно веб-приложение или управляете сложными многоконтейнерными окружениями, правильная установка Docker на CentOS — это критически важный первый шаг.

Предварительные требования

Перед началом убедитесь, что у вас есть:

  • Сервер CentOS 7 или CentOS 8 (физический или виртуальный)
  • Учетная запись пользователя с привилегиями sudo
  • Стабильное интернет-соединение
  • Базовое знакомство с командной строкой Linux

> Совет профессионала: Для лучшего опыта работы с Docker рассмотрите возможность запуска его на плане VPS Hosting. Виртуальный частный сервер дает вам полный доступ root, выделенные ресурсы и гибкость для запуска контейнеров без ограничений общих сред.

Шаг 1: Обновите систему

Перед установкой нового программного обеспечения всегда обновляйте существующие пакеты, чтобы обеспечить совместимость и безопасность. Выполните следующую команду:

sudo yum update -y

Эта команда обновляет все установленные пакеты до их последних версий. Это может занять несколько минут в зависимости от количества ожидающих обновлений. Полностью обновленная система снижает риск конфликтов зависимостей при установке Docker.

Шаг 2: Установка необходимых зависимостей

Docker зависит от нескольких системных пакетов для корректной работы. Установите их одной командой:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

Вот что делает каждый пакет:

ПакетНазначение
yum-utilsПредоставляет утилиту yum-config-manager для управления репозиториями
device-mapper-persistent-dataТребуется для драйвера хранилища device mapper Docker
lvm2Поддержка Logical Volume Manager для бэкенда хранилища Docker

Эти зависимости обеспечивают эффективное и надежное управление хранилищем контейнеров Docker в вашей системе CentOS.

Шаг 3: Добавьте официальный репозиторий Docker

Репозитории пакетов CentOS по умолчанию не включают последние пакеты Docker. Вам нужно добавить официальный репозиторий Docker, чтобы получить самый актуальный стабильный выпуск:

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

Эта команда добавляет официальный репозиторий Docker для CentOS в список репозиториев вашей системы. Использование официального источника гарантирует, что вы получите подлинные, актуальные пакеты Docker непосредственно от Docker Inc., а не потенциально устаревшие версии из зеркал третьих сторон.

Вы можете проверить, что репозиторий был успешно добавлен, перечислив ваши настроенные репозитории:

sudo yum repolist

Шаг 4: Установка Docker Engine

С репозиторием на месте установка Docker проста:

sudo yum install -y docker-ce docker-ce-cli containerd.io

> Примечание: Рекомендуется также установить docker-ce-cli (интерфейс командной строки Docker) и containerd.io (среда выполнения контейнера) вместе с основным движком для полной готовой к производству установки.

Это устанавливает Docker Community Edition (CE) — бесплатную версию Docker с открытым исходным кодом, которая идеально подходит как для разработки, так и для производственных рабочих нагрузок.

Шаг 5: Запуск и включение сервиса Docker

Установка Docker не запускает его автоматически. Вам нужно запустить демон Docker и настроить его на автоматический запуск при загрузке системы:

sudo systemctl start docker
sudo systemctl enable docker
    systemctl start docker — Запускает сервис Docker немедленно
    systemctl enable docker — Настраивает Docker на автоматический запуск при каждой перезагрузке сервера
    
    Проверка статуса сервиса
    Убедитесь, что Docker работает корректно:
    sudo systemctl status docker
    Вы должны увидеть вывод, указывающий на то, что сервис active (running). Если статус показывает какие-либо ошибки, просмотрите системные журналы с помощью journalctl -u docker для получения деталей устранения неполадок.
    Шаг 6: Проверка установки Docker
    Запустите встроенный тест Docker, чтобы подтвердить, что все работает правильно:
    sudo docker run hello-world
    Эта команда выполняет следующее:
    
    Подключается к реестру Docker Hub
    Загружает легкий образ тестирования hello-world
  • Создает новый контейнер из этого образа
  • Запускает контейнер, который выводит подтверждающее сообщение
  • Если установка прошла успешно, вы увидите вывод, начинающийся с:

    Hello from Docker!
    This message shows that your installation appears to be working correctly.

    Поздравляем — Docker теперь полностью установлен и работает на вашем сервере CentOS.

    Шаг 7: Настройка Docker для пользователей без прав root (опционально, но рекомендуется)

    По умолчанию команды Docker требуют sudo (прав root). Для безопасности и удобства в среде разработки вы можете разрешить определённым пользователям без прав root запускать команды Docker, добавив их в группу docker.

    Создание группы Docker

    В большинстве случаев эта группа создаётся автоматически при установке. Если нет, создайте её вручную:

    sudo groupadd docker

    Добавление пользователя в группу Docker

    Замените your_username на фактическое имя пользователя Linux:

    sudo usermod -aG docker your_username

    Применение изменений

    Выйдите и войдите снова, чтобы обновить членство в группе. Или активируйте изменение в текущем сеансе:

    newgrp docker

    Тестирование без Sudo

    docker run hello-world

    Если это выполняется без sudo и без ошибки разрешения, конфигурация работает правильно.

    > Предупреждение безопасности: Группа docker предоставляет привилегии, эквивалентные пользователю root. Добавляйте в эту группу только доверенных пользователей в производственных окружениях.

    Шаг 8: Справочник основных команд Docker

    После запуска Docker вот наиболее важные команды, которые вы будете использовать ежедневно:

    Управление контейнерами

    # List all running containers
    docker ps
    
    # List all containers (including stopped ones)
    docker ps -a
    
    # Start a stopped container
    docker start container_id
    
    # Stop a running container
    docker stop container_id
    
    # Remove a container
    docker rm container_id
    
    # Remove all stopped containers at once
    docker container prune

    Управление образами

    # List all locally stored images
    docker images
    
    # Pull an image from Docker Hub
    docker pull image_name
    
    # Pull a specific version/tag
    docker pull image_name:tag
    
    # Remove a local image
    docker rmi image_name
    
    # Remove all unused images
    docker image prune -a

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

    # Run a container interactively
    docker run -it image_name /bin/bash
    
    # Run a container in detached (background) mode
    docker run -d image_name
    
    # Run a container with port mapping
    docker run -d -p 8080:80 image_name
    
    # Run a container with a custom name
    docker run -d --name my_container image_name

    Просмотр логов и статистики

    # View container logs
    docker logs container_id
    
    # Follow live log output
    docker logs -f container_id
    
    # View real-time resource usage
    docker stats

    Шаг 9: Подтвердите запуск Docker при загрузке

    Docker должен быть уже настроен на запуск при загрузке после выполнения systemctl enable docker. Чтобы перепроверить или повторно включить это поведение:

    sudo systemctl enable docker

    Чтобы отключить автоматический запуск (например, на машине разработки, где Docker не всегда нужен):

    sudo systemctl disable docker

    Шаг 10: Расширенная конфигурация (опционально)

    Установка Docker Compose

    Docker Compose — это важный инструмент для определения и управления приложениями с несколькими контейнерами с использованием простого файла конфигурации YAML. Установите последнюю стабильную версию:

    sudo curl -L "https://github.com/docker/compose/releases/download/v2.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    sudo chmod +x /usr/local/bin/docker-compose

    Проверьте установку:

    docker-compose --version

    С помощью Docker Compose вы можете определить целые стеки приложений — веб-серверы, базы данных, кэши — в одном файле docker-compose.yml и запустить их все одной командой: docker-compose up -d.

    Конфигурация демона Docker

    Вы можете настроить поведение Docker, отредактировав (или создав) файл конфигурации демона:

    sudo nano /etc/docker/daemon.json

    Пример общей конфигурации:

    {
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "10m",
        "max-file": "3"
      },
      "storage-driver": "overlay2",
      "default-address-pools": [
        {"base": "172.17.0.0/16", "size": 24}
      ]
    }

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

    sudo systemctl restart docker

    Общие параметры демона, которые вы можете настроить:

    • Драйвер логирования и ротация — Предотвратите заполнение дискового пространства логами контейнеров
    • Драйвер хранилищаoverlay2 — рекомендуемый драйвер для CentOS
    • Параметры DNS — Установите пользовательские DNS-серверы для контейнеров
    • Зеркала реестра — Ускорьте загрузку образов с помощью локальных зеркал

    Конфигурация правил брандмауэра (CentOS 7)

    Если вы используете firewalld, вам может потребоваться разрешить сетевой трафик Docker:

    sudo firewall-cmd --zone=public --add-masquerade --permanent
    sudo firewall-cmd --reload

    Выбор правильной среды хостинга для Docker

    Запуск Docker в production требует надежной, высокопроизводительной серверной среды. Вот лучшие варианты в зависимости от вашего случая использования:

    • VPS Hosting — Идеален для большинства развертываний Docker. Полный root доступ, масштабируемые ресурсы и экономичное ценообразование делают VPS идеальным выбором для контейнеризованных приложений.
    • Dedicated Servers — Лучший вариант для высоконагруженных production окружений или когда вам нужна максимальная производительность CPU, RAM и хранилища для одновременного запуска десятков контейнеров.
    • GPU Hosting — Идеален для рабочих нагрузок AI/ML, работающих внутри Docker контейнеров, которым требуется GPU ускорение для обучения моделей или вывода.
    • VPS с cPanel — Если вам нужен Docker вместе с удобной панелью управления для управления веб-сайтами и электронной почтой, эта комбинация предлагает лучшее из обоих миров.

    Устранение распространенных проблем Docker на CentOS

    Демон Docker не запускается

    Проверьте системные журналы для получения сведений об ошибках:

    journalctl -u docker --no-pager | tail -50

    Ошибки отказа в доступе

    Если вы видите Got permission denied while trying to connect to the Docker daemon socket, убедитесь, что ваш пользователь находится в группе docker и что вы вышли и снова вошли.

    Невозможно загрузить образы

    Убедитесь, что ваш сервер имеет исходящий доступ в Интернет и что DNS правильно разрешает имена:

    curl -I https://registry-1.docker.io

    Проблемы с сетью контейнера

    Перезагрузите Docker для переинициализации сетевых мостов:

    sudo systemctl restart docker

    Заключение

    Вы успешно установили Docker на CentOS и имеете прочную основу для работы с контейнерами. Вот краткое резюме того, что было рассмотрено:

    1. ✅ Обновлена система и установлены зависимости
    2. ✅ Добавлен официальный репозиторий Docker
    3. ✅ Установлен Docker CE и проверена установка
    4. ✅ Настроен Docker для запуска при загрузке
    5. ✅ Настроен доступ для непривилегированного пользователя
    6. ✅ Изучены основные команды Docker
    7. ✅ Установлен Docker Compose для управления многоконтейнерными приложениями
    8. ✅ Изучены параметры конфигурации демона

    Docker на CentOS открывает мир возможностей — от запуска изолированных сред разработки до развертывания масштабируемых архитектур микросервисов в production. Навыки контейнеризации, которые вы здесь приобретете, послужат основой для более продвинутых тем, таких как оркестрация Kubernetes, CI/CD pipelines и разработка облачных приложений.

    Для лучшего опыта работы с Docker убедитесь, что ваша серверная среда соответствует требованиям. Изучите планы VPS Hosting AlexHost для мощной, надежной и доступной основы всех ваших контейнеризованных рабочих нагрузок.