25 вопросов на собеседовании по Docker

25 вопросов на собеседовании по Docker

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

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

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

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

Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.

Содержание

Базовые вопросы по Docker для начинающих

1. Что такое Docker?

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

2. Какие особенности Docker вы можете выделить?

Самые важные функции Docker включают в себя:

  • Гибкость приложений
  • Высокая производительность разработки
  • Простое моделирование
  • Операционная эффективность
  • Простой контроль версий

3. Зачем использовать Docker? Что он предлагает?

Docker предоставляет пользователям множество опций для внедрения в рабочий процесс, например:

  • Эффективная и простая первоначальная настройка
  • Средства для детального описания жизненного цикла приложения
  • Простая настройка и удобное взаимодействие с Docker Compose
  • Полная и подробная документация
  • Возможность одинаково легко работать на ПК или в корпоративной ИТ-системе.

4. Есть ли у Docker какие-либо недостатки?

Docker не идеален. У него есть свои недостатки, среди них:

  • Отсутствует возможность хранения
  • Варианты мониторинга далеки от идеальных
  • Вы не можете автоматически перепланировать неактивные узлы
  • Сложная автоматическая настройка горизонтального масштабирования

5. Перечислите все компоненты Docker

Тремя основными компонентами Docker являются:

  1. Клиент Docker. Выполняет операции сборки Docker pull и run для открытия связи с хостом Docker. Затем Docker использует Docker API для вызова любых запросов.
  2. Хост Docker. Содержит демон Docker, контейнеры и связанные с ними образы. Демон Docker устанавливает соединение с реестром. Хранящиеся образы представляют собой тип метаданных, предназначенных для контейнерных приложений.
  3. Реестр (Registry). Здесь хранятся образы Docker. Реестра два: публичный и приватный. Docker Hub и Docker Cloud – публичные реестры, доступные для использования всем желающим.

6. Что такое контейнер?

Контейнеры – это развернутые приложения со всеми необходимыми зависимостями и конфигурационными файлами. Все элементы используют одно и то же ядро ОС. Поскольку контейнер не привязан к какой-либо одной ИТ-инфраструктуре, он может работать на любой системе или в облаке.

7. Объясните, что такое виртуализация

Виртуализация – это использование программного обеспечения (например, гипервизора) для создания виртуальной версии ресурса, такого как сервер или  хранилище данных, или приложения. Виртуализация позволяет разделить систему на ряд отдельных частей, каждая из которых действует как отдельная система. Виртуальная среда называется виртуальной машиной.

8. В чем разница между виртуализацией и контейнеризацией?

Виртуализация – это абстрактная версия физической машины, а контейнеризация – абстрактная версия приложения.

9. Опишите жизненный цикл контейнера Docker

Хотя существует несколько различных способов описания этапов жизненного цикла контейнера Docker, наиболее распространенным является следующий:

  1. Создание контейнера (Create)
  2. Запустк контейнера (Run)
  3. Постановка контейнера на паузу (Pause)
  4. Перезапуск контейнера после паузы (Unpause)
  5. Старт контейнера (Start)
  6. Остановка контейнера (Stop)
  7. Рестарт контейнера (Restart)
  8. Принудительная остановка контейнера (Kill)
  9. Удаление конте<йнера (Destroy)

Далее мы рассмотрим вопросы по Docker среднего уровня сложности.

Вопросы по Docker среднего уровня сложности

10. Назовите основные команды Docker и опишите, что они делают

Наиболее важными командами Docker являются:

  • Build. Создает файл образа Docker
  • Commit. Создает новый образ на основе изменений контейнера
  • Create. Создает новый контейнер
  • Dockerd. Запускает демон Docker
  • Kill. Принудительно останавливает контейнер

11. Что такое метки объектов Docker?

Метка – это механизм для нанесения метаданных на объекты Docker, такие как контейнеры, образы, локальные демоны, сети, тома и узлы.

12. Как найти сохраненные тома Docker?

В Linux-системах тома Docker хранятся в специальной директории /var/lib/docker/volumes.

13. Как проверить версии Docker Client и Server?

Команда docker version предоставит вам всю необходимую информацию.

14. Как можно создать контейнер из образа?

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

$ docker run -it -d <image_name>

15. Какая команда используется для остановки контейнера?

Используйте следующую команду:

$ sudo docker stop container_name

16. Как получить список всех контейнеров, работающих в настоящее время?

Используйте команду docker ps.

17. Что включает в себя масштабирование контейнера Docker?

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

18. Что вы знаете о docker system prune?

Это команда, используемая для удаления всех остановленных контейнеров, неиспользуемых сетей, кэшей сборок и неиспользуемых образов. Команда docker system prune – одна из самых полезных команд в Docker.

Далее мы рассмотрим вопросы и ответы на собеседовании по Docker продвинутого уровня.

Вопросы по Docker продвинутого уровня

19. Перечислите некоторые из более продвинутых команд Docker и объясните, что они делают

При ответе на этот вопрос стоит назвать следующие команды:

  • Docker info. Отображает общесистемную информацию об установке Docker
  • Docker pull. Загрузка образа
  • Docker stats. Предоставляет вам информацию о контейнерах
  • Docker images. Выводит список загруженных образов

20. Можно ли потерять данные, хранящиеся в контейнере?

Все данные, хранящиеся в контейнере, остаются там до тех пор, пока вы не удалите контейнер.

21. На каких платформах можно запустить Docker?

К платформам Linux относятся:

  • ArchLinux
  • CentOS 6+
  • CRUX 3.0+
  • Fedora 19/20+
  • Gentoo
  • openSUSE 12.3+
  • RHEL 6.5+
  • Ubuntu 12.04, 13.04 и т.д.

Docker также может работать на следующих облачных платформах:

  • Amazon EC2
  • Amazon ECS
  • Google Compute Engine
  • Microsoft Azure
  • Rackspace

22. Какой метод удаления контейнера лучше: с первоначальной остановкой или при помощи просто команды rm?

Контейнер нужно сперва остановить, а затем удалить. Вот так:

$ docker stop <container_id>
$ docker rm -f <container_id>

23. Может ли контейнер перезапускаться самостоятельно?

Поскольку флаг -reset по умолчанию установлен как false, контейнер не может перезапуститься самостоятельно.

24. Как демон Docker и клиент Docker взаимодействуют друг с другом?

Для обеспечения связи используется комбинация Rest API, socket.IO и TCP.

25. Можете ли вы реализовать непрерывную разработку (CD) и непрерывную интеграцию (CI) в Docker?

Да, можно. Для этого запускается Jenkins на Docker и используется Docker Compose для запуска интеграционных тестов.

Перевод статьи «Top 25 Docker Interview Questions and Answers for 2024».

Оставьте комментарий

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