Глиф Учебники

Docker

Инструменты · 10 уроков · 18 справок · итоговый тест

Docker запускает программы в контейнерах. Курс с нуля: образы и контейнеры, установка, порты и тома, свой Dockerfile, Docker Compose, сети, обновление и безопасность.

Docker — программа, которая запускает приложения в контейнерах. Контейнер — это отдельный уголок системы, где у программы свои файлы, свои библиотеки и своя сеть. Программа в контейнере не мешает остальной системе и не зависит от того, что установлено на компьютере: всё нужное для работы уже лежит в образе, из которого контейнер запущен.

Благодаря этому одна и та же программа одинаково запускается на ноутбуке разработчика, на тестовом и на рабочем сервере. Базу данных, сайт на WordPress или систему мониторинга можно поднять одной командой, не разбираясь с зависимостями (библиотеками и программами, без которых она не работает), а удалить — так же быстро и без следов в системе.

Где применяется

Из чего состоит Docker

Что нужно для начала

Как пройти курс

Уроки идут по порядку: от того, что такое контейнер, до своего образа, нескольких связанных сервисов в Docker Compose и безопасности сервера. После каждого урока — вопросы для проверки, в конце — итоговый тест. Повторяйте команды на своём компьютере или в виртуальной машине: контейнеры ничего не ломают в системе, их можно смело создавать и удалять. В справочнике — короткие ответы на частые вопросы и ошибки: как зайти в контейнер, посмотреть логи, освободить место, что значит «permission denied» или «port is already allocated».

Курс с нуля

  1. 1.Что такое Docker: образы и контейнерыЧто такое контейнер и образ, зачем нужен Docker, чем контейнер отличается от виртуальной машины и откуда берутся готовые образы.
  2. 2.Установка DockerКак установить Docker Engine на Ubuntu из официального репозитория, проверить его на hello-world, работать без sudo и что ставить на Debian, Windows и macOS.
  3. 3.Первые команды: run, ps, logs, stop, rmКак запустить первый контейнер, посмотреть список контейнеров и образов, зайти в контейнер, прочитать логи, остановить и удалить — основные команды Docker.
  4. 4.Запуск сервиса: порты, переменные, имя и перезапускКак запустить в Docker постоянный сервис: открыть порт ключом -p, передать настройки через -e, дать имя, работать в фоне и подниматься после перезагрузки.
  5. 5.Данные: тома и папкиПочему данные контейнера пропадают при его удалении и как их сохранить: именованные тома, папки хоста (-v), права, анонимные тома и резервная копия тома.
  6. 6.Свой образ: Dockerfile и docker buildКак упаковать свою программу в образ: инструкции Dockerfile (FROM, WORKDIR, COPY, RUN, ENV, EXPOSE, CMD), сборка docker build, теги, слои и кэш, частые ошибки.
  7. 7.Сети контейнеровКак контейнеры связываются друг с другом: сеть bridge, своя сеть с поиском по имени, порты внутри сети и снаружи, localhost в контейнере, доступ к хосту и сеть host.
  8. 8.Docker Compose: несколько контейнеров одним файломКак описать сервисы в файле compose.yaml и управлять ими командами docker compose up, down, logs и ps — на примере WordPress с базой MariaDB.
  9. 9.Обновление и очистка местаКак обновить сам Docker и контейнеры до новых версий образов, сколько места занимает Docker, как безопасно чистить контейнеры, образы, кэш и тома и ограничить рост логов.
  10. 10.Безопасность DockerГлавные риски Docker на сервере и как их закрыть: группа docker равна root, порты в обход ufw, доступ к API, чужие образы, контейнер не от root, секреты и ограничения ресурсов.

Начать с первого урока

Итоговый тест — 18 вопросов по всему курсу, ответы проверяются сразу.

Справочник

Официальная документация