Docker произвел революцию в разработке программного обеспечения, позволив разработчикам совместно использовать изолированную среду, которая позволяет всей команде (или нескольким пользователям) создавать, тестировать и развертывать приложения очень последовательным и простым способом.
Поскольку технология существует уже относительно давно, я уверен, что вы слышали такие фразы, как образ, контейнер, тома или даже Dockerfile. Образы и контейнеры Docker — две наиболее важные идеи в этой технологии, и многие новички с трудом различают их.
В следующих разделах мы объясним, что такое образы и контейнеры Docker, а также основные различия между ними.
Образы Docker
Образ Docker — это неизменяемый файл с множеством слоев, каждый из которых соответствует файловой системе и может включать зависимости, скрипты или другие параметры.
Поскольку каждый этап может быть кэширован, такое суммирование улучшает возможность повторного использования и ускоряет создание образа. Если он не был обновлен с момента предыдущей сборки, следующая сборка теперь будет загружать этап из кэша.
Команда docker build теперь используется для создания образа из Dockerfile — текстового файла, содержащего инструкции, которые пользователь может выполнить в командной строке для создания нужного образа.
Образы Docker — это основа контейнеров. Образ представляет собой
упорядоченная коллекция изменений корневой файловой системы и
соответствующих параметров выполнения для использования в контейнере
время выполнения. Образ обычно содержит объединение многоуровневых
файловых систем, уложенных друг на друга.— Документация Docker
Образы сохраняются в реестре Docker — по умолчанию это Docker Hub, но вы также можете разместить свой собственный реестр Docker, доступ к которому будет иметь только ваша организация.
Вы можете просмотреть все образы на хост-машине, выполнив команду
$ docker images
Контейнер Docker
Docker Container — это экземпляр образа Docker, который работает в полностью изолированной среде (то есть, он отделен от любого другого процесса, запущенного на компьютере) и может быть запущен на любой операционной системе (переносимость!).
Контейнеры — это портативные и легкие среды выполнения, которые позволяют пользователям выполнять программы в изоляции от базового компьютера.
Работающий контейнер может быть остановлен с сохранением его настроек и любых модификаций файловой системы, чтобы их можно было повторно использовать при возобновлении работы.
Контейнер — это экземпляр образа docker.
Контейнер Docker состоит из
- образа docker
- Среда выполнения
- Стандартный набор инструкцийКонцепция позаимствована у морских контейнеров, которые определяют > стандарт для глобальной перевозки товаров. Docker определяет стандарт для доставки программного обеспечения.
— Документация Docker
Некоторые полезные команды для контейнеров docker:
# check the running containers
$ docker ps
# check all the containers running or stopped
$ docker ps -a
Заключительные замечания
Docker — это платформа, которая позволяет разработчикам создавать, выполнять и отправлять программы. Понимание того, как эффективно использовать Docker, несомненно, принесет вам пользу на протяжении всей вашей карьеры разработчика программного обеспечения.
Поэтому очень важно сначала понять фундаментальные идеи и компоненты технологии, что позволит вам легче использовать Docker. И это путешествие начинается с умения различать Docker Image и Docker Container.
Одним словом, Docker Image — это конструкция, состоящая из нескольких слоев, как указано в Dockerfile, а Docker Container — это (запущенный) экземпляр Docker Image (и, вероятно, это причина, по которой вы должны использовать Docker!).