3. Основы docker
Введение
Целью данной лабораторной работы является знакомство с программой docker.
Установка docker
Прочитайте про инструментарий для установки программ Advanced Packaging Tool и консольный интерфейс к этом инструментарию Apt-Get.
Далее, в связи с изменением инструкции по установке docker на сайте docker, будет рассмотрен способ установки, отличный от предлагаемого ранее на этой странице. Если Вы уже выполнили эту лабораторную работу с помощью старого способа, то при оформлении отчета и защиты работы можете его использовать, его описание – под спойлером.
Первоначальный способ установки.
В терминале виртуальной машины выполните команду, которая обновит информацию о доступных для установки программах:sudo apt-get update
Примечание: большинство действий apt-get требуют прав администратора (root), команда sudo позволяет выполнять другие команды с такими правами.
Установите дополнительные пакеты, которые потребуются для установки docker:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
Примечание: символ обратного слеша (
\
) используется для разделения в терминале текста, который должны быть набран в одну строку, на несколько строк на экране (для лучшей читаемости).
Примечание: в процессе выполнения команд в терминале могут появиться вопросы, действительно ли пользователь желает выполнить определенные действия. Предлагается ввести (при русифицированном интерфейсе) буквы «д» или «н», соответствующие ответам «да» и «нет», ответ по-умолчанию начинается с большой буквой. Для ответа также можно использовать английские «y» (yes – да) и «n» (no – нет).
Установите цифровой ключ для проверки подписи устанавливаемого программного обеспечения (docker):
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Примечание: символ вертикальной линии (
|
) запускает конвейерное выполнение команд, т.е. результат выполнения первой команды передается на вход второй. Утилита curl скачивает цифровой ключ и передает его утилите apt-key для установки.
Установите репозиторий docker:
sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
Примечание: docker состоит из нескольких программ, в частности репозиторий (Docker repository) нужен для загрузки и других операций с образами контейнеров, а движок (Docker Engine) позволяет их запускать.
Установите движок docker:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Перейдите на страницу https://download.docker.com/linux/ubuntu/dists/, выберите нужную версию Ubuntu, перейдите в папку /pool/stable
, выберите архитектуру amd64
, armhf
или arm64
и загрузите последние версии файлов containerd.io_𝑣𝑒𝑟𝑠𝑖𝑜𝑛.deb
, docker-ce-cli_𝑣𝑒𝑟𝑠𝑖𝑜𝑛.deb
и docker-ce_𝑣𝑒𝑟𝑠𝑖𝑜𝑛.deb
. Для рекомендуемой ранее виртуальной машины этий файлы находятся по адресу https://download.docker.com/linux/ubuntu/dists/focal/pool/stable/amd64/.
Установите каждый из скаченных файлов с помощью команды:
sudo dpkg -i 𝑝𝑎𝑐𝑘𝑎𝑔𝑒.deb
Проверьте корректность установки:
sudo docker run hello-world
Примечание: Данная команда попытается запустить образ hello-world. Не обнаружив его в локальном репозитории она скачает его последнюю версию из глобального репозитория и запустит.
Работа с образами
Посмотрите имеющиеся в репозитории docker образы с помощью команды
sudo docker images
Попробуйте удалить имеющийся образ с помощью команды
sudo docker image rm 𝘐𝘔𝘈𝘎𝘌_𝘐𝘋
Посмотрите контейнеры с помощью команды (ключ -a
– показывать остановленные контейнеры)
sudo docker ps -a
Удалите контейнер с помощью команды
sudo docker container rm 𝘊𝘖𝘕𝘛𝘈𝘐𝘕𝘌𝘙_𝘐𝘋 или 𝘕𝘈𝘔𝘌𝘚
Удалите образ.
Скачайте образ c операционной системой alpine:
sudo docker pull alpine
Запустите образ alpine. Посмотрите список контейнеров.
Выполните команду
sudo docker run -it alpine
Повторите команды из последнего раздела первой лабораторной работы в терминале alpine.
Запустите еще один терминал на виртуальной машине и посмотрите в нем список контейнеров. Удалите контейнер с запущенным образом alpine. Посмотрите, что произошло в первом терминале.