Docker — это технология контейнеризации, которая позволяет быстро создавать, тестировать и развертывать приложения в виде переносимых самодостаточных контейнеров, которые могут работать практически где угодно. Docker стал де-факто стандартом для развертывания контейнеров и важным инструментом для инженеров DevOps и их конвейера непрерывной интеграции и доставки.
В этом руководстве мы расскажем, как установить Docker на компьютер с Ubuntu 18.04, и изучим основные концепции и команды Docker.
Содержание
Подготовка
Прежде чем продолжить это руководство, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo . Все команды в этом руководстве следует запускать от имени пользователя без полномочий root.
Установка Docker в Ubuntu
Хотя установочный пакет Docker доступен в официальном репозитории Ubuntu 18.04, он не всегда может быть последней версией. Рекомендуемый подход — установить последний пакет Docker из репозиториев Docker.
Включение репозитория Docker
-
Начните с обновления списка пакетов и установки зависимостей, необходимых для добавления нового репозитория через HTTPS:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
-
Импортируйте GPG-ключ репозитория с помощью следующей команды
curl
:curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
-
Добавьте репозиторий Docker APT в вашу систему:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Установка Docker CE
Теперь, когда репозиторий Docker включен, вы можете установить любую нужную вам версию Docker.
-
Чтобы установить последнюю версию Docker, используйте команду ниже. Если вы хотите установить определенную версию Docker, пропустите этот шаг и перейдите к следующему.
sudo apt update
sudo apt install docker-ce
-
Чтобы установить определенную версию, сначала укажите доступные версии в репозитории Docker:
apt list -a docker-ce
Команда выводит доступные версии Docker во втором столбце.
docker-ce/bionic 5:18.09.7~3-0~ubuntu-bionic amd64 docker-ce/bionic 5:18.09.6~3-0~ubuntu-bionic amd64 docker-ce/bionic 5:18.09.5~3-0~ubuntu-bionic amd64
Например, чтобы установить версию
18.09.6
, введите:sudo apt install docker-ce=5:18.09.6~3-0~ubuntu-bionic
Чтобы пакет Docker не обновлялся автоматически, отметьте его как задержанное:
sudo apt-mark hold docker-ce
После завершения установки служба Docker запустится автоматически. Вы можете проверить это, набрав:
sudo systemctl status docker
Результат будет выглядеть примерно так:
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor p
Active: active (running) since Tue 2019-07-02 11:28:40 UTC; 15min ago
Docs: https://docs.docker.com
Main PID: 11911 (dockerd)
Tasks: 10
CGroup: /system.slice/docker.service
Выполнение команды docker без sudo
По умолчанию для запуска команд Docker требуются права администратора.
Чтобы запускать команды Docker от имени пользователя без полномочий root без добавления sudo
вам необходимо добавить своего пользователя в группу docker
. Эта группа создается при установке пакета Docker CE. Для этого выполните следующую команду:
sudo usermod -aG docker $USER
$USER
— это переменная среды, в которой хранится ваше имя пользователя.
Выйдите из системы и войдите снова, чтобы обновить членство в группе.
Чтобы убедиться, что Docker успешно установлен и вы можете запускать команды docker без добавления sudo
, запустите:
docker container run hello-world
Команда загрузит тестовое изображение, запустит его в контейнере, напечатает сообщение «Hello from Docker» и выйдет. Результат должен выглядеть следующим образом:
Обновление Docker
Когда выйдет новая версия Docker, вы можете обновить пакет, используя стандартный процесс обновления:
sudo apt update
sudo apt upgrade
Удаление Docker
Перед удалением Docker удалите все контейнеры, образы, тома и сети .
Вы можете удалить Docker, как любой другой пакет, установленный с помощью apt
:
sudo apt purge docker-ce
sudo apt autoremove
Интерфейс командной строки Docker
Команда Docker CLI принимает такую форму:
docker [option] [subcommand] [arguments]
Чтобы вывести список всех доступных команд, введите docker
без параметров:
docker
Если вам нужна дополнительная помощь по какой-либо [subcommand]
, вы можете использовать переключатель --help
как показано ниже:
docker [subcommand] --help
Образы Docker
Образ Docker состоит из ряда слоев файловой системы, представляющих инструкции в файле Dockerfile образа, который составляет исполняемое программное приложение. Изображение — это неизменяемый двоичный файл, включающий приложение и все другие зависимости, такие как библиотеки, двоичные файлы и инструкции, необходимые для запуска приложения.
Вы можете думать об образе Docker как о снимке контейнера Docker.
Большинство образов Docker доступны в Docker Hub. Docker Hub — это облачная служба реестра, которая, среди прочего, используется для хранения образов Docker в общедоступных или частных репозиториях.
Искать в Docker Image
Чтобы найти изображение в реестре Docker Hub, используйте подкоманду search
.
Например, чтобы найти образ Ubuntu, вы должны ввести:
docker search ubuntu
Результат должен выглядеть так:
Как видите, поиск выводит таблицу с пятью столбцами: NAME
, DESCRIPTION
, STARS
, OFFICIAL
и AUTOMATED
.
Официальный образ — это образ, который Docker разрабатывает совместно с партнерами по разработке.
Большинство образов Docker в Docker Hub помечены номерами версий. Если тег не указан, Docker выберет последний из них.
Скачать образ Docker
Например, чтобы загрузить последнюю официальную сборку образа Ubuntu 18.04, вы должны использовать следующую команду image pull
:
docker image pull ubuntu
В зависимости от скорости вашего Интернета загрузка может занять несколько секунд или минут.
Если не указать тег, Docker извлекает последний образ Ubuntu, который на момент написания этой статьи был 18.04.
Если вы хотите загрузить предыдущую версию Ubuntu , скажем, Ubuntu 16.04, вам нужно использовать docker image pull ubuntu:16.04
.
Чтобы перечислить все загруженные изображения, введите:
docker image ls
Результат будет выглядеть примерно так:
Удалить образ Docker
Если по каким-то причинам вы хотите удалить изображение, вы можете сделать это с помощью подкоманды image rm [image_name]
:
docker image rm ubuntu
Контейнеры Docker
Экземпляр изображения называется контейнером. Контейнер представляет среду выполнения для отдельного приложения, процесса или службы.
Возможно, это не самое подходящее сравнение, но если вы программист, вы можете думать об образе Docker как о классе, а контейнер Docker как об экземпляре класса.
Мы можем запускать, останавливать, удалять и управлять контейнером с помощью подкоманды docker container
.
Запустить контейнер Docker
Следующая команда запустит контейнер Docker на основе образа Ubuntu. Если у вас нет образа локально, он сначала загрузит его:
docker container run ubuntu
На первый взгляд вам может показаться, что вообще ничего не произошло. Что ж, это неправда. Контейнер Ubuntu останавливается сразу после загрузки, потому что у него нет длительного процесса, и мы не предоставили никакой команды. Контейнер загрузился, выполнил пустую команду и завершил работу.
-it
позволяет нам взаимодействовать с контейнером через командную строку. Чтобы запустить интерактивный контейнер, введите:
docker container run -it ubuntu /bin/bash
[root@719ef9304412 /]#
Как видно из выходных данных выше, после запуска контейнера командная строка изменяется. Это означает, что теперь вы работаете изнутри контейнера .
Список контейнеров Docker
Чтобы вывести список активных контейнеров, введите:
docker container ls
Чтобы просмотреть как активные, так и неактивные контейнеры, передайте ему переключатель -a
:
docker container ls -a
Удалить контейнеры Docker
Чтобы удалить один или несколько контейнеров, скопируйте идентификатор контейнера (или идентификаторы) и вставьте их после подкоманды container rm
:
docker container rm c55680af670c
Выводы
Вы узнали, как установить Docker на свой компьютер с Ubuntu 18.04 и как загружать образы Docker и управлять контейнерами Docker. Вы также можете прочитать о Docker Compose , который позволяет вам определять и запускать многоконтейнерные приложения Docker.
Этот учебник едва затрагивает экосистему Docker. В некоторых из наших следующих статей мы продолжим углубляться в другие аспекты Docker. Чтобы узнать больше о Docker, ознакомьтесь с официальной документацией Docker .
Если у вас есть вопросы, оставьте комментарий ниже.