Docker ubuntu что это

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

Docker не реализует собственную систему контейнеров, он использует LXC и выступает в качестве оболочки, которая позволяет автоматически загружать, устанавливать и запускать образы контейнеров, а также управлять ими. Все действия выполняются в несколько команд и намного проще чем при использовании lxc. В этой статье мы рассмотрим как выполняется установка docker на Ubuntu, а также как использовать контейнеры в Linux.

Системные требования

Для работы docker ваша система должна отвечать таким требованиям:

Если вы используете Ubuntu версии выше 16.04, то проблем с ядром не возникнет, так как эта система поставляется с ядром 4.2 по умолчанию.

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

Перед тем как переходить к установке самой программы, нужно обновить систему до актуального состояния. Для этого выполните:

sudo apt update && sudo apt upgrade

Перед тем как установить Docker Ubuntu необходимо установить дополнительные пакеты ядра, которые позволяют использовать Aufs для контейнеров Docker. С помощью этой файловой системы мы сможем следить за изменениями и делать мгновенные снимки контейнеров:

Ещё надо установить пакеты, необходимые для работы apt по https:

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

После того как все приготовления завершены и вы убедились что ваша система полностью готова, можно перейти к установке. Мы будем устанавливать программу из официального репозитория разработчиков. Сначала надо добавить ключ репозитория:

Затем добавьте репозиторий docker в систему:

sudo add-apt-repository «deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable»

sudo apt update && apt-cache policy docker-ce

И установка Docker на Ubuntu:

Чтобы завершить установку осталось добавить нашего пользователя в группу docker. Иначе при запуске утилиты вы будете получать ошибку подключения к сокету:

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Для добавления выполните:

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Затем проверяем запущен ли сервис:

sudo systemctl status docker

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Все готово к работе. Теперь рассмотрим подробнее использование Docker.

Установка Docker Compose

Сейчас работа с docker не обходится без утилиты управления контейнерами docker compose, давайте её тоже установим. Чтобы установить docker compose Ubuntu выполните последовательность команд:

sudo chmod +x /usr/local/bin/docker-compose

Утилита была загружена из официального сайта и теперь вы можете посмотреть её версию:

Утилита Docker

Все действия с контейнерами выполняются утилитой docker. Ее можно запускать от имени вашего пользователя после того, как он был добавлен в группу программы. Синтаксис утилиты очень прост:

$ docker опции команда опции_команды аргументы

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Давайте сначала рассмотрим основные опции утилиты их всего несколько:

Команд намного больше, ниже приведены все команды, которые вы можете использовать в своих программах:

В этой статье мы будем часто использовать команду run, рассмотрим ее опции:

Теперь, когда мы рассмотрели все основы, приведем несколько примеров работы с контейнерами. Это очень просто.

Использование Docker в Ubuntu

Чтобы убедиться что все работает давайте запустим тестовый образ. Для этого наберите:

docker run hello-world

Больше ничего не нужно, программа сама скачает образ, и выполнит оболочку в нем. Вы увидите сообщение Hello from Docker:

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Поиск и установка контейнеров

Использование docker очень простое по своей сути. Если вы не знаете название нужного пакета, можете воспользоваться поиском, например, найдем Ubuntu:

docker search ubuntu

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Для загрузки образа на локальный компьютер используйте команду pull:

docker pull ubuntu

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

После завершения загрузки вы можете посмотреть список установленных образов:

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Запуск контейнера

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Вы в окружении контейнера. У вас есть права суперпользователя, но вы не можете получить доступ к основной системе. Контейнер содержит минимум необходимых файлов, нет даже текстовых редакторов. Для установки чего-либо сначала нужно обновить репозиторий:

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Например, установим утилиту dialog:

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Сохранение изменений

Вы можете изменять контейнер как захотите, добавлять и удалять программы и многое другое. Но когда вы его удалите, все изменения будут потеряны. Вы можете создать новое образ из модифицированного контейнера, для этого используется команда commit. Сначала смотрим список запущенных контейнеров:

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Отсюда возьмите id контейнера, затем выполните такую команду для создания нового образа:

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Новый образ был сохранен на вашем компьютере и вы можете увидеть его в списке образов:

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Список контейнеров

Как я уже говорил, вы можете посмотреть список запущенных контейнеров с помощью команды ps:

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

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

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Управление контейнерами

Чтобы остановить запущенный контейнер используйте команду stop:

docker stop d034b794a3bf

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

docker start d034b794a3bf

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Вы можете подключиться к запущенному контейнеру с помощью attach:

docker attach d034b794a3bf

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Чтобы удалить контейнер со всеми изменениями выполните:

docker rm d034b794a3bf

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Выводы

Вы этой статье мы рассмотрели как выполняется установка Docker Ubuntu. В этом дистрибутиве процесс установки не будет трудным даже для новичков. А возможность установки различных дистрибутивов в несколько команд может быть полезной во многих ситуациях. А вы пользуетесь Docker? Для решения каких задач? Напишите в комментариях!

Источник

Установка и использование Docker в Ubuntu 20.04

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

Читайте также:

Данный мануал поможет установить и подготовить к работе Docker Community Edition (CE) в Ubuntu 20.04. Вы научитесь не только устанавливать платформу, но и работать с контейнерами и образами.

Требования

1: Установка Docker

Пакет Docker можно найти в репозитории Ubuntu. Однако, чтобы получить свежую версию программы, лучше обратиться к официальному репозиторию Docker. В этом разделе мы покажем, как загрузить и установить пакет из официального репозитория Docker.

Обновите индекс пакетов:

Установите несколько зависимостей:

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

Теперь можно загрузить и установить пакет Docker. Добавьте в систему GPG-ключ репозитория Docker:

Добавьте репозиторий Docker в APT:

sudo add-apt-repository «deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable»

Обновите индекс пакетов системы:

Следующая команда позволяет переключиться из стандартного репозитория Ubuntu в репозиторий Docker:

apt-cache policy docker-ce

Команда должна вернуть:

docker-ce:
Installed: (none)
Candidate: 5:19.03.9

ubuntu-focal
Version table:
5:19.03.9

ubuntu-focal 500
500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages

Обратите внимание: пакет docker-ce пока не установлен, он только готов к установке. Чтобы установить пакет, введите:

sudo apt install docker-ce

После этого программа Docker будет установлена; также это запустит демон и настроит автозапуск. Чтобы убедиться в том, что программа работает, запросите её состояние:

sudo systemctl status docker

Команда должна вернуть:

Теперь в вашей системе работает сервис (или демон) Docker. Также у вас есть доступ к утилите командной строки docker (о работе с ней мы поговорим немного позже в этом мануале).

2: Настройка команды docker (опционально)

По умолчанию команда docker требует привилегий root (или доступа к команде sudo). Также её можно запускать в группе docker, которая создаётся автоматически во время установки Docker.

Если вы попытаетесь запустить команду docker без sudo и вне группы docker, вы получите ошибку:

Чтобы вам не пришлось набирать sudo каждый раз, когда вы запускаете команду docker, добавьте своего пользователя в группу docker:

Чтобы активировать это изменение, выйдите из системы и войдите снова, или же введите:

При этом будет запрошен пароль вашего пользователя.

Убедитесь, что пользователь добавлен в группу:

Чтобы добавить в группу docker пользователя, который не является вашим текущим пользователем, укажите в команде его имя:

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

3: Использование команды Docker

Итак, программа контейнеризации Docker установлена и готова к работе. Команда docker принимает ряд опций и подкоманд с аргументами. Базовый синтаксис выглядит так:

docker [option] [command] [arguments]

Чтобы просмотреть все подкоманды, введите:

В Docker 19 полный список доступных подкоманд выглядит так:

attach Attach local standard input, output, and error streams to a running container
build Build an image from a Dockerfile
commit Create a new image from a container’s changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container’s filesystem
events Get real time events from the server
exec Run a command in a running container
export Export a container’s filesystem as a tar archive
history Show the history of an image
images List images
import Import the contents from a tarball to create a filesystem image
info Display system-wide information
inspect Return low-level information on Docker objects
kill Kill one or more running containers
load Load an image from a tar archive or STDIN
login Log in to a Docker registry
logout Log out from a Docker registry
logs Fetch the logs of a container
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
ps List containers
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
save Save one or more images to a tar archive (streamed to STDOUT by default)
search Search the Docker Hub for images
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
version Show the Docker version information
wait Block until one or more containers stop, then print their exit codes

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

Чтобы запросить общесистемную информацию о Docker, введите:

4: Образы Docker

Контейнеры Docker запускаются из образов. По умолчанию образы Docker хранятся на Docker Hub – это официальный реестр Docker, поддерживаемый командой разработчиков проекта. Разместить свой образ на Docker Hub может любой пользователь. Здесь можно найти образы для большей части приложений и дистрибутивов Linux.

Чтобы проверить доступ и возможность загружать образы с Docker Hub, введите:

docker run hello-world

Команда должна вернуть следующий результат:

Unable to find image ‘hello-world:latest’ locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
.

Docker не может локально найти образ hello-world, потому он загружает этот образ с Docker Hub. Затем он создает контейнер на основе этого образа и запускает приложение внутри контейнера, после чего выдает это сообщение.

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

docker search ubuntu

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

NAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 10908 [OK] dorowu/ubuntu-desktop-lxde-vnc Docker image to provide HTML5 VNC interface … 428 [OK] rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 244 [OK] consol/ubuntu-xfce-vnc Ubuntu container with «headless» VNC session… 218 [OK] ubuntu-upstart Upstart is an event-based replacement for th… 108 [OK] ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with
.

Если в столбце OFFICIAL содержится OK, это значит, что данный образ поддерживается командой Docker. Выбрав необходимый образ, вы можете загрузить его при помощи подкоманды pull:

docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
d51af753c3d3: Pull complete
fc878cd0a91c: Pull complete
6154df8ff988: Pull complete
fee5db0ff82f: Pull complete
Digest: sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest

Загрузив образ, вы можете запустить контейнер с помощью подкоманды run. Как вы уже видели на примере с образом hello-world, если команда docker run обнаружит, что запрашиваемый образ не загружен на вашу машину заранее, она выполнит его загрузку самостоятельно, а затем запустит контейнер.

Чтобы просмотреть список загруженных образов, введите:

docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 1d622ef86b13 3 weeks ago 73.9MB
hello-world latest bf756fb1ae65 4 months ago 13.3kB

Далее в руководстве мы посмотрим, как изменять загруженные образы и использовать их для создания новых образов, которые затем можно загрузить на Docker Hub или в другой реестр Docker.

5: Запуск контейнера Docker

Ранее загруженный контейнер hello-world – это образец контейнера, который можно запустить после получения тестового сообщения. Однако другие контейнеры могут быть гораздо более полезными. Кроме того, они бывают интерактивными. В целом они очень похожи на ресурсосберегающие виртуальные машины.

Для примера попробуйте запустить контейнер при помощи последнего образа Ubuntu. Комбинация опций –i и –t откроет интерактивную оболочку контейнера:

Командная строка должна измениться, что указывает на то, что теперь вы работаете в контейнере:

В командной строке будет указан id контейнера (в данном примере это d9b100f2f636). Запишите его – он необходим для дальнейшей работы.

Внутри контейнера можно запускать любые команды. Попробуйте обновить индекс пакетов. Имейте в виду: теперь добавлять префикс sudo не нужно, поскольку работа внутри контейнера выполняется с правами root.

Теперь попробуйте установить в контейнер какое-нибудь приложение, например, NodeJS:

apt install nodejs

Это установит Node.js из официального репозитория Ubuntu. Чтобы проверить установку, введите:

Команда должна вернуть версию пакета:

Любые изменения, внесенные в контейнер, касаются только этого контейнера и никак не влияют на остальную систему.

Чтобы выйти из контейнера, введите:
exit

6: Управление контейнерами Docker

Со временем в вашей системе соберётся определённое количество активных и неактивных контейнеров. Чтобы просмотреть список активных контейнеров, введите:

Команда вернёт такой вывод:

CONTAINER ID IMAGE COMMAND CREATED

В этом примере у нас есть 2 контейнера – hello-world и ubuntu. Оба контейнера сейчас неактивны, потому список пуст.

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

Чтобы запустить неактивный контейнер, введите команду docker start и укажите ID контейнера. Например, чтобы запустить контейнер Ubuntu с ID 1c08a7a0d0e4, нужно ввести:

docker start 1c08a7a0d0e4

Проверьте состояние этого контейнера с помощью команды docker ps:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

1c08a7a0d0e4 ubuntu «/bin/bash» 3 minutes ago Up 5 seconds quizzical_mcnulty

Чтобы остановить запущенный контейнер, введите docker stop и добавьте ID этого контейнера. Также можно использовать имя, которое контейнерам присваивает Docker. В данном случае это quizzical_mcnulty:

docker stop quizzical_mcnulty

docker rm youthful_curie

Вы можете запустить новый контейнер и присвоить ему имя с помощью флага –name. Чтобы создать контейнер, который самостоятельно удалится после деактивации, используйте флаг –rm. Больше информации о командах вы найдете в справке:

Контейнеры можно превращать в образы, на основе которых вы сможете собирать новые контейнеры.

7: Коммиты контейнеров в образы Docker

После запуска образа Docker вы можете создавать, менять и удалять файлы так же, как на виртуальной машине. Однако если вы остановите контейнер, а позже запустите его снова, все изменения будут потеряны: все ранее удалённые файлы будут восстановлены, а все новые файлы или внесенные изменения – утрачены.

Данный раздел научит вас сохранять состояние контейнера в качестве нового образа Docker.

Итак, в контейнер Ubuntu вы установили приложение node.js. Теперь контейнер отличается от исходного образа, который был использован для его создания. Его можно использовать в качестве основы для нового образа.

Передайте все изменения в новый образ Docker при помощи следующей команды.

Опция –m позволяет создать сообщение о коммите, которое предоставит вам (а также другим пользователям) подробную информацию о внесённых изменениях. Опция –a позволяет указать автора коммита. container_id был выписан из командной строки. В качестве репозитория, как правило, указывается имя пользователя your Docker Hub.

Например, для пользователя 8host и контейнера с ID d9b100f2f636 команда выглядит так:

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

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

Команда должна вернуть:

REPOSITORY TAG IMAGE ID CREATED SIZE
8host/ubuntu-nodejs latest 7c1f35226ca6 7 seconds ago 179MB
.

В списке появился новый образ ubuntu-nodejs, который был получен из существующего образа ubuntu, загруженного с Docker Hub. Разница в размерах отражает внесенные изменения (в данном случае установку приложения NodeJS). Поэтому если в дальнейшем вам понадобится контейнер Ubuntu с предустановленным приложением Node.JS, вы можете просто использовать этот образ.

Также можно собирать образы из так называемых Dockerfile, но это довольно сложный процесс, который выходит за рамки данного руководства.

8: Загрузка образов в репозиторий Docker

Создав новый образ Docker, вы можете поделиться им на Docker Hub или в другом реестре Docker. Для этого вам нужно иметь аккаунт.

В этом разделе мы поговорим о том, как загружать образы Docker на Docker Hub.

Зарегистрируйтесь на Docker Hub. После этого нужно открыть аккаунт при помощи своих учётных данных.

Вам будет предложено пройти аутентификацию. Вы сможете войти в свой аккаунт Docker Hub, предоставив правильный пароль.

Примечание: Если имя вашего аккаунта в реестре Docker отличается от имени вашего пользователя, с помощью которого вы создали свой образ, вам нужно добавить в образ тег с вашим именем в реестре. Например:

docker tag 8host/ubuntu-nodejs docker-registry-username/ubuntu-nodejs

Получив доступ к Docker Hub, можно загрузить новый образ:

docker push docker-registry-username/docker-image-name

Например, для пользователя 8host и образа ubuntu-nodejs команда будет выглядеть так:

docker push 8host/ubuntu-nodejs

На выполнение команды уйдёт некоторое время. Команда вернёт:

The push refers to a repository [docker.io/8host/ubuntu-nodejs] e3fbbfb44187: Pushed
5f70bf18a086: Pushed
a3b5c80a4eba: Pushed
7f18b442972b: Pushed
3ce512daaf78: Pushed
7aae4540b42d: Pushed
.

Загрузив образ в каталог, вы увидите его в панели инструментов аккаунта.

Если в процессе загрузки произошла ошибка, команда выведет сообщение:

The push refers to a repository [docker.io/8host/ubuntu-nodejs] e3fbbfb44187: Preparing
5f70bf18a086: Preparing
a3b5c80a4eba: Preparing
7f18b442972b: Preparing
3ce512daaf78: Preparing
7aae4540b42d: Waiting
unauthorized: authentication required

Скорее всего, вам не удалось пройти аутентификацию. Войдите и попробуйте снова отправить образ.

Теперь вы можете загрузить свой образ с помощью команды:

docker pull 8host/ubuntu-nodejs

и запустить на его основе новый контейнер.

Заключение

Данный мануал охватывает лишь базовые функции Docker, однако этого должно хватить для начала.

Источник

Изучаем Docker, часть 1: основы

Технологии контейнеризации приложений нашли широкое применение в сферах разработки ПО и анализа данных. Эти технологии помогают сделать приложения более безопасными, облегчают их развёртывание и улучшают возможности по их масштабированию. Рост и развитие технологий контейнеризации можно считать одним из важнейших трендов современности.

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

Docker ubuntu что это. Смотреть фото Docker ubuntu что это. Смотреть картинку Docker ubuntu что это. Картинка про Docker ubuntu что это. Фото Docker ubuntu что это

Если вы пока не знаете о том, что такое Docker, сейчас у вас есть шанс сделать первый шаг к пониманию этой платформы. А именно, освоив этот материал, вы разберётесь с основами Docker и попутно приготовите пиццу.

Метафоры и Docker

Мы постоянно сталкиваемся с метафорами. Если заглянуть в словарь Ожегова, то окажется, что метафора — это «скрытое образное сравнение, уподобление одного предмета, явления другому». Метафоры помогают нам ухватывать суть новых для нас явлений. Например, виртуальные контейнеры можно сравнить с обычными пластиковыми контейнерами. Такое сравнение, через сопоставление уже известных нам свойств обычных контейнеров со свойствами виртуальных контейнеров, поможет сначала с ними познакомиться, а потом и понять их сущность.

Как вы понимаете, мы собираемся начать разговор о Docker с понятия «контейнер».

Контейнер

Как и обычный пластиковый контейнер, контейнер Docker обладает следующими характеристиками:

Живые организмы

Ещё один подход к размышлениям о контейнерах Docker заключается в сравнении их с экземплярами живых организмов. «Экземпляр» — это нечто, существующее в некоей форме. Это не просто код. Это код, который стал причиной существования чего-то большего, чем он сам, чего-то, образно говоря, живого. Как и другие живые организмы, экземпляры контейнеров появляются на свет, живут и умирают.

Монстр, вызванный к жизни

Контейнеры Docker — это вызванные к жизни образы Docker.

Программное обеспечение

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

Контейнер — это программа

Во время выполнения контейнера Docker внутри него обычно выполняется какая-то программа. Она выполняет в контейнере некие действия, то есть — делает что-то полезное.

Например, код, который работает в контейнере Docker, возможно, отправил на ваш компьютер тот текст, который вы сейчас читаете. Вполне возможно и то, что именно код, выполняющийся в контейнере Docker, принимает голосовые команды, которые вы даёте Amazon Alexa, и преобразует их в инструкции для ещё каких-нибудь программ, работающих в других контейнерах.

Благодаря использованию Docker можно, на одном и том же компьютере, одновременно запускать множество контейнеров. И, как и любые другие программы, контейнеры Docker можно запускать, останавливать, удалять. Можно исследовать их содержимое и создавать их.

Концепции Docker

▍Виртуальные машины

Предшественниками контейнеров Docker были виртуальные машины. Виртуальная машина, как и контейнер, изолирует от внешней среды приложение и его зависимости. Однако контейнеры Docker обладают преимуществами перед виртуальными машинами. Так, они потребляют меньше ресурсов, их очень легко переносить, они быстрее запускаются и приходят в работоспособное состояние. В этом материале можно найти подробное сравнение контейнеров и виртуальных машин.

▍Образ контейнера Docker

Выше мы уже говорили об «образах». Что это такое? Хороший вопрос. То, что в терминологии Docker называется «образом», или, по-английски, «image», это совсем не то же самое, что, например, фотография (это — одно из значений слова «image»).

Образы Docker — это не фотографии

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

Образы контейнеров Docker похожи на формочки для печенья

В образе контейнера Docker содержится образ базовой операционной системы, код приложения, библиотеки, от которого оно зависит. Всё это скомпоновано в виде единой сущности, на основе которой можно создать контейнер.

▍Файл Dockerfile

Файл Dockerfile содержит набор инструкций, следуя которым Docker будет собирать образ контейнера. Этот файл содержит описание базового образа, который будет представлять собой исходный слой образа. Среди популярных официальных базовых образов можно отметить python, ubuntu, alpine.

И, наконец, в образе может содержаться, поверх всех остальных, ещё один тонкий слой, данные, хранящиеся в котором, поддаются изменению. Это — небольшой по объёму слой, содержащий программу, которую планируется запускать в контейнере.

▍Контейнер Docker

▍Репозиторий контейнеров

Если вы хотите дать возможность другим людям создавать контейнеры на основе вашего образа, вы можете отправить этот образ в облачное хранилище. Самым крупным подобным хранилищем является репозиторий Docker Hub. Он используется при работе с Docker по умолчанию.

Мы уже довольно много всего обсудили. Пришло время собрать всё это вместе и сравнить работу с контейнерами Docker с приготовлением пиццы.

Готовим с Docker

Готовая пицца — это контейнер

Духовка — это платформа Docker

Духовка, в которой готовится пицца, напоминает платформу Docker. Духовку устанавливают на кухне, с её помощью можно готовить еду. Точно так же Docker устанавливают на компьютере для того, чтобы «готовить» контейнеры.

Духовку, если она электрическая, включают, поворачивая ручку регулятора температуры. Команда docker run image_name — это нечто вроде такого регулятора температуры, «поворот» которого приводит к тому, что система создаёт и запускает контейнер.

Готовая пицца — это и есть контейнер Docker.

А есть пиццу — значит пользоваться приложением, запущенным в контейнере.

Как и приготовление пиццы, подготовка к работе контейнеров Docker занимает некоторое время, но в финале и в том и в другом случаях получается что-то вкусное.

Итоги

Здесь мы, на концептуальном уровне, рассмотрели основы Docker. Надеемся, приведённые здесь сравнения помогли вам разобраться в том, что такое Docker, и ощутить ценность метафор в деле освоения новых технологий.

Уважаемые читатели! Эта публикация представляет собой перевод первой статьи из серии учебных материалов по Docker. По словам автора, всего планируется выпустить 5 таких материалов. Уже готовы вторая, третья и четвёртая части. Подскажите нам, стоит ли переводить следующие статьи этой серии?

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *