Docker и Docker Compose
Подробная Шпаргалка по Docker
Docker и Docker Compose
Docker — это платформа для разработки, доставки и запуска приложений в контейнерах. Контейнеры позволяют упаковать приложение с его зависимостями и запускать его в изолированной среде на любой системе с установленным Docker.
Основные Понятия
Образы (Images): Шаблоны для создания контейнеров. Образы состоят из слоев, каждый из которых представляет собой набор файловых изменений.
Контейнеры (Containers): Изолированные экземпляры образов, которые можно запускать, останавливать и управлять ими.
Dockerfile: Файл с инструкциями для создания пользовательских образов.
Docker Hub: Публичный реестр образов Docker, где можно найти и загрузить готовые образы.
Установка Docker
На Linux
На MacOS
Скачайте Docker Desktop с официального сайта и установите его.
Проверка установки
Основные Команды Docker
Работа с Образами
Поиск образов в Docker Hub:
Пример:
Загрузка образа:
Пример:
Просмотр локальных образов:
Удаление образа:
Работа с Контейнерами
Запуск контейнера:
Пример (запуск Nginx на порту 80):
Опции команды
docker run
:-d
: Запуск в фоновом режиме (detached mode).-p
: Проброс порта (HOST:CONTAINER).--name
: Присвоение имени контейнеру.-v
: Монтирование тома (HOST:CONTAINER).
Просмотр запущенных контейнеров:
Просмотр всех контейнеров (включая остановленные):
Остановка контейнера:
Запуск остановленного контейнера:
Перезапуск контейнера:
Удаление контейнера:
Удаление всех остановленных контейнеров:
Выполнение команд внутри контейнера
Выполнение команды в запущенном контейнере:
Пример (открыть bash):
Запуск контейнера с доступом к терминалу:
Логи и мониторинг
Просмотр логов контейнера:
С выводом в реальном времени:
Статистика использования ресурсов:
Управление сетью
Просмотр сетей Docker:
Создание пользовательской сети:
Запуск контейнера в определенной сети:
Подключение контейнера к сети:
Отключение контейнера от сети:
Работа с томами
Просмотр томов:
Создание тома:
Удаление тома:
Монтирование тома при запуске контейнера:
Пример (монтирование текущей директории):
Создание Собственного Образа с помощью Dockerfile
Структура Dockerfile
Пример Dockerfile для Python приложения
Сборка образа
Пример:
Запуск созданного образа
Docker Compose
Docker Compose используется для определения и запуска многоконтейнерных приложений.
Файл docker-compose.yml
Основные команды Docker Compose
Запуск всех сервисов:
В фоновом режиме:
Остановка всех сервисов:
Пересборка образов:
Просмотр логов:
Выполнение команды внутри сервиса:
Пример:
Docker Registry
Вход в Docker Hub:
Тегирование образа для отправки в реестр:
Пример:
Отправка образа в Docker Hub:
Получение образа из реестра:
Docker Networking
Типы сетей
bridge: По умолчанию для контейнеров на одном хосте.
host: Контейнер использует сеть хоста.
none: Отключенная сеть.
Создание пользовательской мостовой сети
Запуск контейнера в пользовательской сети
Связывание контейнеров
Контейнеры в одной сети могут обращаться друг к другу по имени.
Пример:
Запустить Redis:
Запустить приложение, которое использует Redis:
В приложении можно обращаться к Redis по имени redis
.
Docker Volumes (Тома)
Тома используются для сохранения данных контейнера вне его файловой системы.
Создание тома
Использование тома при запуске контейнера
Монтирование директории хоста
Резервное копирование тома
Восстановление тома из резервной копии
Управление ресурсами
Ограничение использования CPU
Ограничение использования памяти
Полезные Команды
Удаление всех остановленных контейнеров:
Удаление всех неиспользуемых образов:
Удаление всех неиспользуемых данных:
Информация о Docker:
Список процессов внутри контейнера:
Docker Swarm (Оркестрация)
Docker Swarm позволяет управлять кластером Docker-демонов.
Инициализация Swarm
Добавление узла в Swarm
На основном узле:
Следуйте инструкциям для добавления узла.
Развертывание сервиса в Swarm
Масштабирование сервиса
Просмотр сервисов
Безопасность Docker
Запуск только доверенных образов.
Регулярное обновление образов и Docker Engine.
Использование минимальных базовых образов (например, Alpine).
Ограничение привилегий контейнеров:
Использование
--read-only
для создания только чтения файловой системы:
Docker Best Practices
Минимизируйте количество слоев в Dockerfile.
Используйте
.dockerignore
для исключения ненужных файлов.Закрепляйте версии зависимостей.
Регулярно обновляйте образы.
Используйте многоступенчатую сборку (multi-stage builds) для уменьшения размера образа.
Пример многоступенчатой сборки:
Получение Справки
Общая справка:
Справка по конкретной команде:
Пример:
Полезные Ресурсы
Официальная документация Docker: https://docs.docker.com/
Docker Hub: https://hub.docker.com/
Play with Docker (песочница): https://labs.play-with-docker.com/
Заключение
Docker является мощным инструментом для контейнеризации приложений, что упрощает их развертывание и масштабирование. Эта шпаргалка призвана помочь вам быстро найти нужные команды и лучшие практики при работе с Docker. Рекомендуется регулярно изучать официальную документацию и практиковаться для более глубокого понимания возможностей Docker.
Last updated
Was this helpful?