В последнее время контейнеризация значительно набрала обороты в области технологий программного обеспечения – Flatpak, Snap, AppImage, это можно отнести и к Docker – контейнерной платформе. Чаще всего Docker применяется на серверах, где необходимо развернуть тот или иной сервис. На нем можно поднять например Web сервер, или даже запустить операционную систему из контейнера.
Контейнеры Docker — легкие, переносимые сервисы, которые позволяют программному обеспечению работать изолированно от другого программного обеспечения. Эта функция переносимости позволяет разработчикам объединять свои приложения в изолированные службы. Кроме того, его можно обслуживать независимо, оставляя место для масштабирования.
В родных репозиториях Ubuntu Docker присутствует, но не факт, что последней версии, в этой статье мы подключим репозиторий от разработчиков Docker и установим последнюю стабильную версию.
Добавление репозитория Docker
Перед тем, как начнем подключать репозиторий, давайте установим необходимые зависимости, они устанавливаются командой ниже:
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

Когда зависимости установятся, следующим шагом необходимо скачать GPG ключ от репозитория и добавить его в Ubuntu, все это можно сделать всего одной командой:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Собственно, теперь добавляем репозиторий:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Установка Docker CE в Ubuntu
Теперь можно установить Docker, устанавливать мы будем Docker CE – Community Edition. Давайте обновим списки пакетов и наконец установим Docker:
sudo apt update && sudo apt install docker-ce

Чтобы установить определенную версию, сначала давайте узнаем, какие версии доступны для установки в репозитории Docker:
apt list -a docker-ce

Например, чтобы установить версию 5:20.10.11, введите:
sudo apt install docker-ce=5:20.10.11~3-0~ubuntu-focal

После установки служба Docker запускается автоматически, проверить статус можно командой:
sudo systemctl status docker

Об успешном запуске вам скажет статус “Active: active (running)”, для выхода и продолжения работы нажмите клавишу “q”.
Пакеты Docker будут обновляться автоматически, чтобы отключить автоматическое обновление пакета Docker, выполните следующую команду:
sudo apt-mark hold docker-ce
Использование Docker
Использование docker подразумевает передачу ему цепочки опций и команд, за которыми следуют аргументы. Синтаксис Docker имеет следующую форму:
docker [опция] [команда] [аргумент]
Чтобы просмотреть все доступные суб-команды, введите:
docker

Просмотреть параметры, доступные для конкретной команды, введите:
docker docker-subcommand --help
Получить общесистемную информацию о Docker, можно введя команду:
docker info

Для полноценной работы необходимо так же установить Docker Compose, это можно сделать следующими командами:
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Первой командой мы загружаем с GitHub сам пакет, теперь дадим ей необходимые права, для запуска:
sudo chmod +x /usr/local/bin/docker-compose
Узнать версию Docker Compose можно командой:
docker-compose --version

Проверить, можно ли получить доступ к образам из Docker Hub и загрузить их, введите следующую команду:
sudo docker run hello-world

Можно обойтись без применения root прав для работы с Docker, для этого необходимо добавить вашего пользователя в группу “docker”:
sudo usermod -aG docker имя_пользователя
Так как я не добавлял своего пользователя в группу “docker”, то дальше работаю от Sudo пользователя, если вы добавили вашего пользователя в группу, то необходимость в Sudo отпадает. Для поиска доступных на Docker Hub контейнеров выполняем команду docker с суб-командой search, а дальше название контейнера. Например, чтобы найти образ Ubuntu, введите:
sudo docker search ubuntu

Для загрузки необходимого образа Docker выполняем команду:
sudo docker pull ubuntu
Где как вы понимаете, вместо “ubuntu” вписываете название необходимого контейнера. Например, загружу ubuntu с прокси squid:
sudo docker pull ubuntu/squid

Запуск Docker контейнера
Для запуска контейнера используется команда “run”, давайте запустим контейнер, для получения интерактивного доступа используйте опции -i и -t:
sudo docker run -it ubuntu/squid

Узнать какие загружены контейнера Docker можно командой:
sudo docker images

Внутри контейнера можно производить любые настройки и правки, но после того, как вы закроете их, все ваши правки пропадут. Для их сохранения сначала давайте узнаем какие контейнеры запущены:
sudo docker ps
Далее берем id контейнера и при помощи команды “commit -m” сохраняем:
sudo docker commit -m “изменения, которые были произведены” -a “автор” id контейнера repository/новое_имя
Для остановки контейнера выполняется команда “docker stop”, для запуска – “docker start”, а затем указываете id необходимого контейнера. Например, давайте сначала посмотрим все запущенные контейнера командой:
sudo docker ps -l

Теперь остановим данный контейнер, введя команду “docker stop” и указав его id, он выделен на скриншоте:

Останавливаем контейнер:
sudo docker stop 052bfcfa1bae

Для удаления контейнера выполняем команду “docker rm” и указываем id контейнера, который хотим удалить.
Заключение
Контейнеры Docker весьма полезны, когда необходимо быстро развернуть какой-либо сервис. Что весьма удобно, все это легко масштабируется, настраивается и управляется, не зря Docker получил такую популярность.
В данной статье мы рассмотрели лишь базовые возможности, которые могут помочь вам в освоении Docker в Ubuntu 20.04, более подробно обо всех возможностях читайте на официальном сайте, где вы так же найдете информацию о последней выпущенной версии.
А на этом сегодня все, если статья оказалась вам полезна, подписывайтесь на рассылку журнала в pdf формате, а так же на социальные сети журнала Cyber-X:
YouTube
ВКонтакте
Telegram
Twitter
Tumblr
Юморилка, Telegram канал с анекдотами:
Telegram
1С – Обучение, Доработка, Консультация:
РК-Центр
По вопросам работы сайта, сотрудничества, а так же по иным возникшим вопросам пишите на E-Mail. Если вам нравится журнал и вы хотите отблагодарить за труды, вы можете перечислить донат на развитие проекта.
С уважением, редакция журнала Cyber-X