Как установить Docker на CentOS

Docker — это платформа, позволяющая упаковывать приложения и зависимости в единое целое, – так называемый контейнер. Эта технология упрощает развертывание и запуск приложений в локальных средах разработки, на удалённых серверах или в облаке.

Разработчики используют Docker для создания приложений изолированно друг от друга. Благодаря контейнеризации платформы они могут объединить все ресурсы в одной среде, включая ОС и необходимые библиотеки.  

Так, существенно упрощается отладка, обновление и повторное развертывание приложений. Это также оптимизирует эксплуатационные расходы, позволяя пользователям запускать несколько приложений на одном веб-сервере.

Существует две вариации Docker:
 

  • Community Edition (CE) — это бесплатная платформа контейнеризации с открытым исходным кодом. 
  • Enterprise Edition (EE) — премиальная сертифицированная платформа, поставляемая с дополнительными функциями, которые могут помочь предприятиям более эффективно запускать, управлять и защищать свои контейнеры.

Вы можете установить Docker на Ubuntu, CentOS и многие другие операционные системы с открытым исходным кодом. В данном руководстве мы расскажем, как это сделать на различные версии CentOS. 

Требования к ОС 

  • 64-разрядный сервер;
  • Версия CentOS 7, CentOS 8 (Stream) или CentOS 9 (Stream);
  • Пользователь без полномочий root с привилегиями sudo или суперпользователь;
  • Включённый репозиторий CentOS Extras.

Важно! Как правило, репозиторий CentOS Extras включён по умолчанию. 

Как удалить старые версии Docker

Если вы уже устанавливали старые версии Docker («docker» или «docker-engine»), перед установкой новой удалите их вместе со всеми зависимостями с помощью команд:

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

Настройка и установка Docker CE на CentOS 7 

  1. Обновите локальную базу данных пакетов:

sudo yum check-update

  1. Загрузите последнюю доступную версию Docker из официального репозитория:

curl -fsSL https://get.docker.com/ | sh

  1. После завершения установки запустите демон Docker:

sudo systemctl start docker

  1. Убедитесь, что он работает:

sudo systemctl status docker

Если служба активна и работает, вы получите примерно следующий вывод:

Output
docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2023-04-18 09:03:45 DST; 6 weeks 1 days ago
Docs: https://docs.docker.com
 Main PID: 749 (docker)

  1. Убедитесь, что Docker запускается при каждой перезагрузке сервера:

sudo systemctl enable docker

Готово! Теперь на вашем сервере установлен Docker. 

Как установить Docker CE на CentOS 8 (Stream) / CentOS 9 (Stream)

  1. Чтобы управлять репозиториями и получить доступ к расширенному управлению пакетами, установите дополнительные утилиты:

sudo dnf install yum-utils

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

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

  1. После успешной настройки репозитория выполните следующую команду, чтобы узнать, какая версия Docker доступна для установки.
  2. sudo dnf list docker-ce

На выходе вы должны получить примерно следующий результат:

Docker CE Stable - x86_64 1.5 kB/s | 3.4 kB 00:03
Available Packages
docker-ce.x86_64       3:19.03.13-3.el8          docker-ce-stable

  1. Установите последнюю стабильную версию Docker:

sudo dnf install docker-ce --nobest -y

  1. После установки воспользуйтесь утилитой systemctl, чтобы запустить и включить Docker на своём сервере:

sudo systemctl start docker
sudo systemctl enable docker

  1. Проверьте установленную версию Docker:

docker --version

На выходе вы получите ответ, похожий на:

Docker version 19.03.13, build 4484c46d9d

Как загрузить и запустить образ в Docker

По умолчанию образы Docker извлекаются из Docker Hub, официального репозитория платформы. Любой может создавать и размещать там свои образы. Именно поэтому большинство приложений и дистрибутивов Linux, которые вам могут понадобиться для запуска контейнеров Docker, имеют образы, размещённые в Docker Hub.

  1. Чтобы проверить, можете ли вы получить доступ и загрузить образы из Docker Hub, введите:

docker run hello-world

  1. Если всё работает верно, в результате вы получите:

«Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
7050e35b49f5: Pull complete 
Digest: sha256:6e8b6f026e0b9c419ea0fd02d3905dd0952ad1feea67543f525c73a0a790fefb
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (arm64v8)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/»

Как работать с контейнерами в Docker

Чтобы запустить контейнер Docker и управлять им, вам в любом случае понадобится определённый образ. Вы можете искать любые образы, доступные в Docker Hub, с помощью команды docker с подкомандой search.

Например, чтобы найти образ CentOS, введите:
docker search centos

Заданная команда просканирует репозиторий и предложит вам список всех образов, имя которых соответствует строке поиска. В этом случае вывод будет примерно таким:

Output

NAME

DESCRIPTION STARS OFFICIAL

AUTOMATED

centos

The official build of CentOS  2224  [OK] 

jdeathe/centos-ssh 

ssh              CentOS-6 6.7 x86_64 / CentOS-7 7.2.1511 x8...    22 [OK]    

jdeathe/centos-ssh-apache-php   

CentOS-6 6.7 x86_64 / Apache / PHP / PHP M...    17 [OK]

million12/centos-supervisor  

Base CentOS-7 with supervisord launcher, h...    11 [OK]

nimmis/java-centos   

This is docker images of CentOS 7 with dif...  10 [OK]

torusware/speedus-centos   

Always updated official CentOS docker imag...    8 [OK]

nickistre/centos-lamp 

LAMP on centos setup    3 [OK]

  1. В столбце «Official» OK указывает, что образ был создан и загружен официальными представителями Docker. После того, как вы определились, какой образ хотите загрузить, вы сделать это с помощью команды pull. 

К примеру:
docker pull centos

В случае успеха вы получите:

«Using default tag: latest
Trying to pull repository docker.io/centos ...
latest: Pulling from docker.io/centos
45a2e645736c: Pull complete
1c3acf573616: Pull complete
edcb61e55ccc: Pull complete
cbae31bad30a: Pull complete
aacbdb1e2a62: Pull complete
fdeea4fb835c: Pull complete
Digest: sha256:39eff7d56b96530d014083cd343f7314c23acbd1ecf37eb75a71a2f6584d0b02
Status: Downloaded newer image for docker.io/centos:latest»

  1. Теперь вы можете запустить контейнер с помощью команды:

docker run -it centos

Полезные команды для работы с контейнерами Docker

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

  • docker ps — узнать, какие контейнеры запущены;
  • docker ps -a — увидеть все контейнеры: и запущенные, и приостановленные;
  • docker create [имя контейнера] — создать контейнер без его автоматического запуска;
  • docker rename [имя контейнера] [новое имя] — переименовать существующий контейнер;
  • docker rm [имя контейнера] — удалить контейнер, если он не запущен;
  • docker rm -f [имя контейнера] — принудительно удалить контейнер, даже если он запущен;
  • docker logs [имя контейнера] — открыть логи запущенного контейнера;
  • docker logs -f --until=[временной интервал] [имя контейнера] —  увидеть логи, созданные до определённого времени;
  • docker top [имя контейнера] — открыть список всех работающих процессов внутри контейнера;
  • docker restart [имя контейнера] – перезапустить приостановленный контейнер;
  • docker stop [имя контейнера] — остановить работу контейнера через время;
  • docker kill [имя контейнера] – немедленно прекратить работу контейнера.  

Подробнее о том, как работать с контейнерами Docker, вы можете узнать в нашей статье «Что такое Docker контейнер». 

Заключение

Из этой статьи вы узнали о том, как установить Docker на CentOS и управлять различными контейнерами, почему он полезен при разработке программного обеспечения и как вы можете его использовать. Теперь на своём сервере вы можете уверенно пользоваться всеми преимуществами одной из самых мощных платформ контейнеризации.
 

Всё ещё остались вопросы?