Как установить и использовать Docker на CentOS 7

Как установить и использовать Docker на CentOS 7

How To Install and Use Docker on CentOS 7

3 Января 2020 | CentOS

В этом руководстве мы расскажем, как установить Docker CE на CentOS 7, и рассмотрим основные концепции и команды Docker.

Как установить и использовать Docker на CentOS 7

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

Прежде чем приступить, убедитесь, что выполнены следующие предварительные условия:

  • Сервер CentOS 7
  • Вы вошли как пользователь с привилегиями sudo. Вы проверяете это руководство о том, как создать нового пользователя sudo.


Установите Docker на CentOS 

Хотя пакет Docker доступен в официальном репозитории CentOS 7, он не всегда может быть последней версией. Рекомендуемый подход - установить Docker из репозитория Docker.


Чтобы установить Docker на вашем сервере CentOS 7, выполните следующие действия:

  1. Начните с обновления системных пакетов и установите необходимые зависимости:

    sudo yum updatesudo yum install yum-utils device-mapper-persistent-data lvm2
  2. Затем выполните следующую команду, которая добавит стабильный репозиторий Docker в вашу систему:

    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  3. Теперь, когда репозиторий Docker включен, установите последнюю версию Docker CE (Community Edition), используя yum, набрав:

    sudo yum install docker-ce
  4. После установки пакета Docker запустите демон Docker и включите его автоматический запуск во время загрузки:

    sudo systemctl start dockersudo systemctl enable docker
  5. Чтобы убедиться, что служба Docker запущена, введите:

    sudo systemctl status docker

    Вывод должен выглядеть примерно так:

    ● docker.service - Docker Application Container Engine
       Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
       Active: active (running) since Wed 2018-10-31 08:51:20 UTC; 7s ago
         Docs: https://docs.docker.com
     Main PID: 2492 (dockerd)
       CGroup: /system.slice/docker.service
               ├─2492 /usr/bin/dockerd
               └─2498 docker-containerd --config /var/run/docker/containerd/containerd.toml
  6. На момент написания текущей стабильной версией Docker 18.06.1 была напечатана версия версии Docker:

    docker -v
    Docker version 18.06.1-ce, build e68fc7a


Выполнение команды Docker без Sudo

По умолчанию для управления Docker требуются права администратора. Если вы хотите запускать команды Docker от имени пользователя без полномочий root без предварительной подготовки sudo вам необходимо добавить своего пользователя в группу Docker, которая создается во время установки пакета Docker CE. Вы можете сделать это, набрав:


sudo usermod -aG docker $USER


$USER является переменной среды , которая содержит имя пользователя.

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

Чтобы убедиться, что Docker успешно установлен и что вы можете запускать команды docker без sudo, введите следующую команду, которая загрузит тестовый образ, запустит его в контейнере, распечатает сообщение «Hello from Docker» и выйдет:


docker container run hello-world


Вывод должен выглядеть следующим образом:


Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
Status: Downloaded newer image for hello-world:latest

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


Интерфейс командной строки Docker 

Теперь, когда у нас есть работающая установка Docker, давайте рассмотрим основной синтаксис командной строки Docker.

Командная строка Docker имеет следующий вид:


docker [option] [subcommand] [arguments]


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


docker


Если вам нужна дополнительная помощь по любому [subcommand], просто введите:


docker [subcommand] --help


Docker Образ

Образ Docker состоит из инструкций, описанных в Dockerfile, которые составляют исполняемое программное приложение. Образ - это неизменяемый двоичный файл, включающий приложение и все другие зависимости, такие как двоичные файлы, библиотеки и инструкции, необходимые для запуска приложения. Короче говоря, образ Docker - это, по сути, снимок контейнера Docker.

Docker Hub - это облачная служба реестра, которая, помимо прочего, используется для хранения образов Docker в общедоступном или частном хранилище.

Для поиска изображения в хранилище Docker Hub просто используйте search подкоманду. Например, чтобы найти образ CentOS, запустите:


docker search centos


Вывод должен выглядеть следующим образом:


NAME                               DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
centos                             The official build of CentOS.                   4257                [OK]
ansible/centos7-ansible            Ansible on Centos7                              109                                     [OK]
jdeathe/centos-ssh                 CentOS-6 6.9 x86_64 / CentOS-7 7.4.1708 x86_…   94                                      [OK]
consol/centos-xfce-vnc             Centos container with "headless" VNC session…   52                                      [OK]
imagine10255/centos6-lnmp-php56    centos6-lnmp-php56                              40                                      [OK]
tutum/centos                       Simple CentOS docker image with SSH access      39


Как вы можете видеть результаты поиска печатает таблицу с пятью столбцами, NAME, DESCRIPTION, STARS, OFFICIAL и AUTOMATED. Официальный образ - это образ, который Docker разрабатывает совместно с вышестоящими партнерами.

Если мы хотим загрузить официальную сборку CentOS 7, мы можем сделать это с помощью image pull подкоманды:


docker image pull centos
Using default tag: latest
latest: Pulling from library/centos
469cfcc7a4b3: Pull complete
Digest: sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16
Status: Downloaded newer image for centos:latest


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


docker image ls


Вывод должен выглядеть примерно так:


REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hello-world         latest              e38bc07ac18e        3 weeks ago         1.85kB
centos              latest              e934aafc2206        4 weeks ago         199MB


Если по какой-то причине вы хотите удалить образ, вы можете сделать это с помощью image rm [image_name] подкоманды:


docker image rm centos
Untagged: centos:latest
Untagged: centos@sha256:989b936d56b1ace20ddf855a301741e52abca38286382cba7f44443210e96d16
Deleted: sha256:e934aafc22064b7322c0250f1e32e5ce93b2d19b356f4537f5864bd102e8531f
Deleted: sha256:43e653f84b79ba52711b0f726ff5a7fd1162ae9df4be76ca1de8370b8bbf9bb0


Контейнеры Docker

Экземпляр образа называется контейнером. Контейнер представляет собой среду выполнения для отдельного приложения, процесса или службы.

Возможно, это не самое подходящее сравнение, но если вы программист, вы можете рассматривать образ Docker как класс, а контейнер Docker как экземпляр класса.

Мы можем запускать, останавливать, удалять и управлять контейнером с помощью подкоманды  docker container .

Следующая команда запустит Docker-контейнер на основе образа CentoOS. Если у вас нет изображения локально, оно сначала загрузит его:


docker container run centos


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

Переключатель -it позволяет нам взаимодействовать с контейнером через командную строку. Для запуска интерактивного контейнера введите:


docker container run -it centos /bin/bash


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


[root@719ef9304412 /]#


Для просмотра списка запущенных контейнеров: введите:


docker container ls
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
79ab8e16d567        centos              "/bin/bash"         22 minutes ago      Up 22 minutes                           ecstatic_ardinghelli

     Если у вас нет запущенных контейнеров, вывод будет пустым.

Чтобы просмотреть как запущенные, так и остановленные контейнеры, передайте ему -a переключатель:


docker container ls -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                      PORTS               NAMES
79ab8e16d567        centos              "/bin/bash"              22 minutes ago      Up 22 minutes                                   ecstatic_ardinghelli
c55680af670c        centos              "/bin/bash"              30 minutes ago      Exited (0) 30 minutes ago                       modest_hawking
c6a147d1bc8a        hello-world         "/hello"                 20 hours ago        Exited (0) 20 hours ago                         sleepy_shannon


Чтобы удалить один или несколько контейнеров, просто скопируйте идентификатор контейнера (или идентификаторы) сверху и вставьте их после подкоманды  container rm :


docker container rm c55680af670c


Вывод 

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

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



    Комментарии

    Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.

Загрузка комментариев...