Питання на співбесіді з Docker і CI/CD (Junior) з відповідями
75 запитань для співбесіди з теми Docker і CI/CD (Junior) - з правильними відповідями, поясненнями й посиланнями на документацію.
Пройти цей тест- 1.Чим контейнер відрізняється від віртуальної машини?
- 2.Чим образ відрізняється від контейнера?
- 3.Що таке Dockerfile?
- 4.Що робить
FROM node:22-alpineу Dockerfile? - 5.Чим відрізняються
RUNіCMD? - 6.Як
ENTRYPOINTпов'язаний ізCMD? - 7.Чому зазвичай краще
COPY, ніжADD? - 8.Що робить
WORKDIR /app? - 9.Чи робить
EXPOSE 3000у Dockerfile порт доступним із хоста? - 10.Що означає
docker run -p 8080:3000 my-app? - 11.Як побачити зупинені контейнери разом із запущеними?
- 12.Як прочитати вивід запущеного контейнера?
- 13.Як відкрити оболонку всередині запущеного контейнера?
- 14.Чому контейнер завершується одразу після старту?
- 15.Що стається з файлами, записаними всередині контейнера, коли його видаляють?
- 16.Чим volume відрізняється від bind mount?
- 17.Для чого потрібен
.dockerignore? - 18.Навіщо копіювати
package.jsonі lock-файл раніше за решту коду? - 19.Що означає тег
latest? - 20.Що таке
.уdocker build -t my-app .? - 21.Що таке реєстр контейнерів?
- 22.Чим відрізняються
ARGіENV? - 23.Для чого використовують Docker Compose?
- 24.Як у Compose сервіс
appпідключається до сервісуdb? - 25.Чи чекає
depends_on: [db], доки база даних буде готова приймати з'єднання? - 26.Що робить
docker compose down -vна додачу доdown? - 27.Що означає
localhostвсередині контейнера? - 28.Що робить
docker stop? - 29.Чим відрізняються
docker rmіdocker rmi? - 30.Диск заповнений старими даними Docker. Яка типова команда для очищення?
- 31.Як передати змінну середовища під час запуску контейнера?
- 32.Що робить
--rmуdocker run --rm my-app? - 33.Яка поширена пастка образів на базі Alpine?
- 34.Чому не варто копіювати
.envіз секретами в образ? - 35.Що робить
-dуdocker run -d nginx? - 36.Що дають прапорці
-it? - 37.Що робить
--restart unless-stopped? - 38.Що інструкція
HEALTHCHECKдодає контейнеру? - 39.Що таке безперервна інтеграція (CI)?
- 40.Чим continuous delivery відрізняється від continuous deployment?
- 41.Що типовий CI/CD-пайплайн робить і в якому порядку?
- 42.Навіщо запускати CI на кожен pull request?
- 43.Де лежать файли workflow GitHub Actions?
- 44.Чим у GitHub Actions job відрізняється від step?
- 45.Що задає
runs-on: ubuntu-latest? - 46.Що робить крок
uses: actions/checkout@v4? - 47.Що визначає
on: [push, pull_request]у workflow? - 48.Як workflow має отримувати API-токен для розгортання?
- 49.Чому в CI використовують
npm ci, а неnpm install? - 50.Що пришвидшує кешування залежностей у CI?
- 51.Що таке артефакти workflow?
- 52.Що за замовчуванням стається, коли step у job падає?
- 53.Як змусити job розгортання чекати на job тестів?
- 54.Що робить build matrix?
- 55.Який файл налаштовує GitLab CI/CD?
- 56.Навіщо тримати конфігурацію на кшталт URL бази даних у змінних середовища?
- 57.Для чого потрібне staging-оточення?
- 58.Що таке rollback?
- 59.Що таке blue-green розгортання?
- 60.Що означає «build once, deploy many»?
- 61.Навіщо закріплювати
FROM node:22.11-slim, а не писатиFROM node? - 62.Чому розмір образу має значення?
- 63.Чи варто комітити в Git файл
.envз локальними секретами? - 64.Що таке обов'язкова перевірка статусу (required status check)?
- 65.Що таке нестабільний (flaky) тест?
- 66.Як пайплайну розгортати лише випущені версії?
- 67.Від якого користувача за замовчуванням працює процес контейнера?
- 68.Що показує
docker inspect <container>? - 69.Чому два контейнери в типовій мережі bridge не бачать один одного за ім'ям?
- 70.Як стежити за логами всіх сервісів проєкту Compose?
- 71.
docker run -p 5432:5432 postgresпадає з «port is already allocated». Чому? - 72.Як зберігаються шари образу й зміни контейнера?
- 73.Як Docker Desktop запускає Linux-контейнери на macOS чи Windows?
- 74.Що робить
docker build --no-cache? - 75.Що
docker compose up --buildдодає доup?