Введение
Docker произвел революцию в развертывании программного обеспечения, предоставив лёгкие и переносимые контейнерные решения. Понимание того, как просматривать и управлять инвентарём контейнеров Docker, имеет решающее значение для разработчиков и системных администраторов. Этот учебник проведет вас через различные методы эффективного перечисления, инспектирования и отслеживания контейнеров Docker в различных сценариях.
Обзор контейнеров Docker
Что такое контейнер Docker?
Контейнер Docker — это лёгкий, автономный, исполняемый пакет, включающий всё необходимое для запуска программного обеспечения, включая код, среду выполнения, системные инструменты, библиотеки и настройки. Контейнеры обеспечивают согласованную и воспроизводимую среду для приложений на различных вычислительных платформах.
Ключевые характеристики контейнеров Docker
Изоляция
Контейнеры изолируют приложения от хостовой системы и других контейнеров, гарантируя, что каждое приложение работает в собственной среде без вмешательства в работу других.
graph TD
A[Операционная система хоста] --> B[Контейнер 1]
A --> C[Контейнер 2]
A --> D[Контейнер 3]
Переносимость
Контейнеры могут работать согласованно в различных средах, от разработки до производства, уменьшая проблемы "работает на моей машине".
Эффективность
Контейнеры более эффективны в использовании ресурсов по сравнению с традиционными виртуальными машинами, так как они используют ядро хостовой системы и требуют меньшей накладных расходов.
Контейнер против виртуальной машины
| Характеристика | Контейнер Docker | Виртуальная машина |
|---|---|---|
| Использование ресурсов | Лёгкий | Тяжёлый |
| Время запуска | Секунды | Минуты |
| Уровень изоляции | Уровень процессов | Полная система |
| Производительность | Высокая | Низкая |
Общие варианты использования
- Архитектура микросервисов
- Непрерывная интеграция/непрерывная доставка (CI/CD)
- Разработка облачных приложений
- Среды разработки и тестирования
Базовый рабочий процесс с контейнерами Docker
graph LR
A[Изображение Docker] --> B[Создать контейнер]
B --> C[Запустить контейнер]
C --> D[Запустить приложение]
D --> E[Остановить контейнер]
E --> F[Удалить контейнер]
Начало работы с LabEx
Для практического обучения и опыта работы с контейнерами Docker, LabEx предоставляет интерактивные среды и исчерпывающие учебные пособия, помогающие разработчикам освоить технологии контейнеров.
Просмотр инвентаря контейнеров
Основные команды для перечисления контейнеров Docker
Перечисление запущенных контейнеров
Для просмотра текущих запущенных контейнеров используйте команду docker ps:
docker ps
Перечисление всех контейнеров (включая остановленные)
Для просмотра всех контейнеров, включая остановленные, используйте:
docker ps -a
Расширенные методы перечисления контейнеров
Фильтрация контейнеров
Docker предоставляет мощные возможности фильтрации для просмотра определённых контейнеров:
## Фильтрация по статусу
docker ps -f "status=running"
## Фильтрация по образу
docker ps -f "ancestor=ubuntu:latest"
Настройка формата вывода
Настройте вывод списка контейнеров с указанием определённых столбцов:
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}"
Визуализация инвентаря контейнеров
graph TD
A[Команда Docker] --> B{Тип перечисления}
B --> |Запущенные контейнеры| C[docker ps]
B --> |Все контейнеры| D[docker ps -a]
B --> |Отфильтрованные контейнеры| E[docker ps -f]
Детальная информация о контейнере
Просмотр информации о конкретном контейнере
Получите подробную информацию о конкретном контейнере:
docker inspect [CONTAINER_ID]
Атрибуты инвентаря контейнеров
| Атрибут | Описание | Пример |
|---|---|---|
| ID контейнера | Уникальный идентификатор контейнера | a1b2c3d4e5f6 |
| ИЗОБРАЖЕНИЕ | Базовый образ, используемый | ubuntu:latest |
| КОМАНДА | Выполняемая команда | /bin/bash |
| СОЗДАН | Время создания контейнера | 2 часа назад |
| СТАТУС | Текущий статус контейнера | Запущен 45 минут |
| ПОРТЫ | Открытые порты | 80/tcp |
| ИМЕНА | Имя контейнера | friendly_newton |
Совет LabEx Pro
При работе с инвентарём контейнеров Docker LabEx рекомендует практиковаться с этими командами в контролируемой среде, чтобы развить навык и понимание.
Практические сценарии
- Мониторинг жизненного цикла контейнеров
- Устранение неполадок при развертывании контейнеров
- Управление несколькими средами контейнеров
- Аудит ресурсов контейнеров
Методы управления контейнерами
Управление жизненным циклом контейнеров
Запуск контейнеров
Запустите контейнер с помощью команды docker start:
docker start [CONTAINER_ID]
Остановка контейнеров
Корректно остановите запущенный контейнер:
docker stop [CONTAINER_ID]
Перезапуск контейнеров
Перезапустите контейнер одной командой:
docker restart [CONTAINER_ID]
Рабочий процесс жизненного цикла контейнера
graph TD
A[Создать контейнер] --> B[Запустить контейнер]
B --> C{Статус контейнера}
C --> |Запущен| D[Выполнить команды]
C --> |Остановлен| E[Перезапустить/Удалить]
D --> F[Остановить контейнер]
F --> G[Удалить контейнер]
Расширенное управление контейнерами
Интерактивный запуск контейнеров
Запустите интерактивную оболочку внутри контейнера:
docker run -it ubuntu:latest /bin/bash
Выполнение команд в запущенных контейнерах
Выполните команды в активном контейнере:
docker exec [CONTAINER_ID] command
Управление ресурсами контейнеров
Ограничение ресурсов контейнеров
Управляйте использованием ЦП и памяти:
docker run --cpus=2 --memory=1g ubuntu:latest
Мониторинг использования ресурсов
Отслеживайте производительность контейнера:
docker stats [CONTAINER_ID]
Методы управления контейнерами
| Метод | Команда | Описание |
|---|---|---|
| Создание | docker create | Подготовка контейнера без запуска |
| Запуск | docker run | Создание и запуск контейнера |
| Остановка | docker stop | Корректно остановить контейнер |
| Удаление | docker rm | Удалить контейнер |
| Приостановка | docker pause | Временно заморозить контейнер |
Сетевое взаимодействие контейнеров
Картирование портов
Открыть порты контейнера для хоста:
docker run -p 8080:80 nginx:latest
Создание пользовательской сети
Создайте изолированные сети контейнеров:
docker network create mynetwork
docker run --network=mynetwork nginx:latest
Резервное копирование и миграция контейнеров
Создание моментальной копии контейнера
Создайте образ из работающего контейнера:
docker commit [CONTAINER_ID] myimage:backup
Экспорт контейнера
Сохраните состояние контейнера для миграции:
docker export [CONTAINER_ID] > container.tar
Рекомендация LabEx
Для комплексного управления контейнерами Docker LabEx рекомендует практиковаться в контролируемой, имитируемой среде, чтобы развить практические навыки.
Лучшие практики
- Всегда используйте ограничения ресурсов
- Реализуйте надлежащий мониторинг контейнеров
- Регулярно удаляйте неиспользуемые контейнеры
- Используйте систему контроля версий для конфигураций контейнеров
- Реализуйте сканирование на безопасность
Резюме
Освоение управления инвентарём контейнеров Docker имеет решающее значение для поддержания надёжной и эффективной контейнерной среды. Используя команды Docker CLI и расширенные методы фильтрации, вы можете получить полное представление о запущенных и остановленных контейнерах, что позволит улучшить управление ресурсами и мониторинг системы.



