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

В этом руководстве вы узнаете, как установить Docker на компьютер с Ubuntu 18.04, и рассмотрим основные концепции и команды Docker.

Предпосылки

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

Установка Docker на Ubuntu

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

Включение репозитория Docker

1) Начните с обновления списка пакетов и установки зависимостей, необходимых для добавления нового репозитория через HTTPS:

sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

2) Импортируйте ключ GPG репозитория с помощью следующей curl команды:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

3) Добавьте репозиторий Docker APT в вашу систему:

sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Установка DockerCE

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

1) Чтобы установить последнюю версию Docker, используйте команду ниже. Если вы хотите установить конкретную версию Docker, пропустите этот шаг и перейдите к следующему.

sudo apt update
sudo apt install docker-ce

2) Чтобы установить конкретную версию, сначала перечислите доступные версии в репозитории 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

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

docker search ubuntu

Официальный образ — это образ, который Docker разрабатывает совместно с вышестоящими партнерами.

Большинство образов Docker на Docker Hub помечены номерами версий. Если тег не указан, Docker выберет самый последний.

Скачать образ Docker

Например, чтобы загрузить последнюю официальную сборку образа Ubuntu 18.04, вы должны использовать следующую image pullкоманду:

docker image pull ubuntu

В зависимости от скорости вашего интернета загрузка может занять несколько секунд или минут. Если тег не указан, Docker загружает последний образ Ubuntu.

Если вы хотите загрузить предыдущую версию 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

Получение списка контейнеров Docker

Чтобы получить список активных контейнеров, введите:

docker container ls

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

docker container ls -a

Удалить контейнеры Docker

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

docker container rm <ID>

Заключение

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