Добро пожаловать к чтению про Docker! Рад, что вас заинтересовала данная статья, но это часть цикла целого туториала, не забудьте просмотреть все шаг за шагом 😊!
В данном туториале вы сможете изучить:
- построение и запуска образа в виде контейнера
- шаринг образа, используя Docker Hub
- деплой приложения в Docker, используя мультиконтейнерность с базой данных
- запуск приложения, используя Docker Compose
- в дополнении вы также изучите лучшие практики построения образов, включая инструкции о том, как сканировать образы на наличие уязвимостей
Загрузка и установка Docker
Предполагаю, что вы уже установили Docker на свою машину. Если у вас есть надобность установки, то вам придется, исходя из вашей операционной системы, выбрать вариант установки из списка
Запуска текущего туториала
После установки у вас уже будут доступны команды Docker в командной строке и можно приступать к работе.
Чтобы сделать запуск официального туториала нужно выполнить команду в терминале
docker run -d -p 80:80 docker/getting-started
Вы заметите, что используются несколько флажков. Вот еще немного информации о них:
-d
— запуск контейнера в режиме демона-p 80:80
— направление внешнего порта 80 на внутренний порт 80 в контейнере(убедитесь, что порт 80 не занят в вашей системе и измените, если это так)docker/getting-started
— используемый образ, на котором строится контейнер
Панель управления Docker
Панель управления Docker может выглядеть по разному, в зависимости от того, какая у вас система. К примеру, для десктопной версии это выглядит, как оконное приложение со списком контейнеров, которых можно редактировать, удалять и т.д.
А если у вас командная строка или Linux система, то все процессы визуально можно просматривать, используя плагины для редакторов кода, к примеру, для Visual Code есть плагин Docker от Microsoft.
Что такое контейнер?
Теперь, когда вы запустили контейнер, давайте узнаем, что есть контейнер в контексте Docker.
Эта изоляция использует пространства имен ядра и контрольные группы, функции, которые уже давно присутствуют в Linux. Docker постарался сделать эти возможности доступными и простыми в использовании.
Что такое образ контейнера?
Когда запускается контейнер, то он использует изолированную файловую систему. Эта пользовательская файловая система представлена образом контейнера. Поскольку образ содержит файловую систему контейнера, он должен содержать все необходимое для запуска приложения — все зависимости, конфигурацию, сценарии, двоичные файлы и т. д. Образ также содержит другую конфигурацию для контейнера, например переменные среды, команды по умолчанию для запуска и другие метаданные.
Позже мы более подробно рассмотрим образы, затронув такие темы, как наслоение, лучшие практики и многое другое.
chroot
, подумайте о контейнере как о расширенной версии chroot
. Файловая система просто берется из образа. Но контейнер добавляет дополнительную изоляцию, недоступную при простом использовании chroot
.