Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Как работает Docker?

Программирование+3
Николай Гагаринов
  ·   · 711
Интересуюсь всем понемногу, но больше техническая...  · 3 апр 2021
Отвечает
Vlad See_Later

Как работает docker

Создание образа

Сначала создается docker image (или образ). Он создается при помощи скрипта, который вы для этого пишете.

Образы наследуются и, обычно, для создания своего первого образа мы берём готовый образ и наследуемся от него.

Чаще всего мы берем образ в котором содержится та или иная версия linux. Скрипт тогда начинается как-то так:

FROM ubuntu:16.04

Далее при помощи директивы RUN мы можем исполнять любые команды, которые поддерживает этот линукс.

Например RUN apt-get install -y mc установит в наш образ midnight commander.

Кроме этого, мы можем копировать в наш образ любые локальные файлы при помощи директивы COPY.

Например:

COPY mzoo.war /opt/tomcat/webapps/ROOT.war

Докер поддерживает гораздо больше различных директив. Например, директива USER roman говорит докеру что все следующие директивы нужно выполнять из под пользователя roman. А директива ENTRYPOINT [“/opt/tomcat/catalina.sh”] задает исполняемый файл, который будет запускаться при старте.

Я не буду перечислять все остальные директивы — в этом нет смысла. Здесь главное — принцип: вы создаёте вот такой скрипт, называете его Dockerfile и запускаете команду docker build, docker выполняет скрипт и создает image.

Если в процессе возникают какие-то ошибки, докер о них сообщает и вы их исправляете. То есть исправление скрипта происходит на этапе создания image. На этапе установки скрипт уже не используется.

Создание контейнера

Когда у вас уже есть docker image вы можете создать из него контейнер на любом физическом сервере, где установлен докер. Если image – это тиражируемый образ некоторой «машины», то container это уже сама «машина», которую можно запускать и останавливать.

Важный момент — при создании контейнера из image, его можно параметризовать. Вы можете передавать докеру переменные окружения, которые он использует при создании контейнера из image. Так вы сможете создавать немного разные машины из одного образа. Например, передать образу web-сервера его доменное имя.

Спасибо, но вы описали механику использования, а не внутреннее устройство((

Интересуюсь всем понемногу, но больше техническая...  · 3 апр 2021
Отвечает
Vlad See_Later
Контейнеризация является отличной альтернативой аппаратной виртуализации. Все процессы в ней протекают на уровне операционной системы, что позволяет существенно экономить ресурсы и увеличивать эффективность работы с приложениями... Читать далее