
Docker — это технология контейнеризации, которая позволяет быстро создавать, тестировать и развертывать приложения в виде портативных, самодостаточных контейнеров, которые могут работать практически где угодно.
В этом руководстве мы рассмотрим, как установить Docker CE на CentOS 7, а также изучим основные концепции и команды Docker.
Предпосылки
Прежде чем приступить к изучению этого руководства, убедитесь, что выполнены следующие предварительные условия:
- Сервер CentOS 7
- Вы вошли в систему как пользователь без прав root с привилегиями sudo. Ознакомьтесь с этим руководством , чтобы узнать, как создать нового пользователя sudo.
Установка Docker на CentOS
Хотя пакет Docker доступен в официальном репозитории CentOS 7, его версия может быть не всегда последней. Рекомендуется устанавливать Docker из репозиториев Docker.
Чтобы установить Docker на сервер CentOS 7, выполните следующие действия:
-
Начните с обновления системных пакетов и установки необходимых зависимостей:
sudo yum updatesudo yum install yum-utils device-mapper-persistent-data lvm2 -
Затем выполните следующую команду, которая добавит стабильный репозиторий Docker в вашу систему:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo -
Теперь, когда репозиторий Docker включен, установите последнюю версию Docker CE (Community Edition) с помощью yum, введя:
sudo yum install docker-ce -
После установки пакета Docker запустите демон Docker и включите его автоматический запуск при загрузке:
sudo systemctl start dockersudo systemctl enable docker -
Чтобы проверить, запущена ли служба 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 -
На момент написания статьи текущей стабильной версией Docker является
18.06.1. Для вывода версии Docker введите:docker -vDocker 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, давайте рассмотрим базовый синтаксис CLI 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 .
Если у вас есть вопросы или замечания, пожалуйста, оставьте комментарий ниже.
docker centos Не используете CentOS 7?
Выберите другую ОС: дебиан 10 дебиан 9 убунту 18.04 убунту 20.04 убунту 22.04
Связанные руководства
- Как установить и использовать Docker Compose в CentOS 7
- Как установить и настроить Zabbix на CentOS 7
- Как установить текстовый редактор Atom на CentOS 7
- Как установить Sublime Text 3 на CentOS 7
- Как установить Visual Studio Code на CentOS 7
- Как установить VMware Workstation Player на CentOS 7
- Как добавить пространство подкачки в CentOS 7