15%

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

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

Используйте код:

Skills
Начать
31.10.2024
1 +1

Как установить 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 для backend хранилища Docker

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

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

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

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

Эта команда добавляет официальный репозиторий CentOS Docker в список репозиториев вашей системы. Использование официального источника гарантирует, что вы получите подлинные, актуальные пакеты 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 (среда выполнения контейнера) вместе с основным движком для полной, готовой к production установки.

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

Шаг 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. Добавляйте только доверенных пользователей в эту группу в production окружениях.

    Шаг 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 и хранилища для одновременного запуска десятков контейнеров.
    15%

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

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

    Используйте код:

    Skills
    Начать