16 вопросов, около 12 минут
Итоговый тест по курсу «Docker для начинающих»
16 вопросов по Docker с разбором ответов: образы и контейнеры, docker run и логи, теги, Dockerfile, тома, сеть и порты, Docker Compose и отладка. В конце — темы для повторения и вывод.
Тест по всему курсу
Проверьте, как усвоился курс: вопросы по всем урокам, а в конце — разбор ошибок и темы, которые стоит повторить.
-
Из одного образа nginx запустили три контейнера. Сколько образов и сколько контейнеров?
Образ — шаблон, контейнер — запущенный по нему экземпляр. Из одного образа запускают сколько угодно контейнеров.
-
Программа работает у разработчика, но падает на сервере из-за другой версии библиотеки. Как здесь поможет Docker?
Образ содержит программу и всё, что ей нужно: версию языка, библиотеки, настройки. Поэтому контейнер ведёт себя одинаково на любом компьютере с Docker.
-
Вы выполнили docker run --name web … второй раз и получили ошибку. Почему?
Чтобы вернуть к работе старый контейнер, нужен docker start web. Чтобы создать новый с тем же именем, старый сначала удаляют.
-
Какая команда покажет и остановленные контейнеры?
docker ps показывает только работающие контейнеры, флаг -a — все.
-
Что скачает docker pull nginx?
Без тега Docker подставляет latest — метку, которую авторы образа могут перевесить на другую версию в любой момент.
-
Почему в проекте пишут postgres:16, а не просто postgres?
Явный тег делает проект предсказуемым: версия меняется только тогда, когда вы решили её обновить.
-
В Dockerfile есть RUN pip install … и CMD ["python", "app.py"]. Когда выполняется каждая?
RUN готовит образ, и результат остаётся в слое. CMD говорит, что запускать, когда стартует контейнер.
-
Вы поменяли одну строку кода, а сборка снова скачивает все зависимости. Что исправить в Dockerfile?
Изменённый слой пересобирается вместе со всеми слоями ниже. Если зависимости ставятся выше копирования кода, их слой берётся из кэша.
-
Контейнер базы удалили и запустили новый с тем же томом. Что с данными?
Том живёт отдельно от контейнеров. Новый контейнер с тем же томом видит прежние данные.
-
Вы правите страницы сайта и хотите сразу видеть изменения в контейнере nginx. Что подойдёт лучше всего?
Монтирование показывает контейнеру вашу папку как есть, и правки видны сразу.
-
Контейнер запущен с -p 5000:80. Где открыть его в браузере?
Слева — порт компьютера, справа — порт внутри контейнера. В браузере открывают порт компьютера.
-
Программа в контейнере ищет базу по адресу localhost:5432, а база запущена в соседнем контейнере. Почему не находит?
У каждого контейнера свой localhost. В созданной вами сети контейнеры находят друг друга по имени.
-
Что делает docker compose up -d в папке с compose.yaml?
Одна команда поднимает весь стенд, описанный в файле.
-
После docker compose down и up -d таблицы в базе на месте, а после down -v — пропали. Почему?
Флаг -v удаляет тома проекта. Без него данные переживают пересоздание контейнеров.
-
В docker ps -a у контейнера статус Exited (1). Что это значит и что делать?
Код 0 — завершилась без ошибки, любое другое число — с ошибкой. Причину почти всегда видно в логах.
-
Почему не стоит класть пароль базы прямо в образ?
Секреты передают при запуске — через переменные окружения или файл .env, который не попадает в Git.
А теперь о вас
Три вопроса без правильных ответов — о том, подходит ли вам это направление.
Что дальше
Если тема зацепила, продолжить можно так.