Введение
Командная строка Docker (Docker CLI) — мощный инструмент, позволяющий разработчикам взаимодействовать с контейнерами, образами и сетями Docker через командную строку. Это исчерпывающее руководство проведет вас через основные техники Docker CLI, помогая понять, как эффективно управлять и манипулировать контейнерами, создавать надежные среды разработки и оптимизировать ваш рабочий процесс контейнеризации.
Основы Docker CLI
Что такое Docker CLI?
Командная строка Docker (Docker CLI) — мощный инструмент, позволяющий пользователям взаимодействовать с демоном Docker и управлять контейнерами, образами, сетями и томами. Она предоставляет текстовый интерфейс для выполнения команд Docker и выполнения различных операций.
Установка и настройка
Перед использованием Docker CLI убедитесь, что Docker установлен на вашей системе Ubuntu 22.04:
## Обновить индекс пакетов
sudo apt update
## Установить Docker
sudo apt install docker.io
## Проверить установку
docker --version
Базовая структура Docker CLI
Команды Docker CLI следуют стандартному синтаксису:
docker <объект> <команда> <опции>
Категории команд
| Категория | Назначение |
|---|---|
| Команды управления | Управление объектами Docker |
| Команды с образами | Скачивание, сборка и управление образами |
| Команды с контейнерами | Создание, запуск и управление контейнерами |
| Команды с сетями | Настройка сетей Docker |
| Команды с томами | Управление постоянным хранилищем данных |
Аутентификация и разрешения
graph TD
A[Пользователь] --> B{Docker CLI}
B --> |Требуются права sudo| C[Права администратора]
B --> |Группа пользователей| D[Доступ в группе Docker]
Чтобы избежать использования sudo для каждой команды, добавьте своего пользователя в группу docker:
## Добавить текущего пользователя в группу docker
sudo usermod -aG docker $USER
## Перезапустить сеанс
newgrp docker
Настройка Docker CLI
Файлы конфигурации обычно находятся в:
/etc/docker/daemon.json(для всей системы)~/.docker/config.json(для конкретного пользователя)
Ключевые понятия
- Дэмон Docker: Фоновый сервис, управляющий объектами Docker
- Клиент Docker: Инструмент командной строки для взаимодействия с демоном
- Объекты Docker: Образы, контейнеры, сети, тома
Понимание этих основ позволит пользователям эффективно использовать Docker CLI для задач контейнеризации. LabEx рекомендует практиковаться в выполнении этих основных команд, чтобы создать прочную основу в управлении Docker.
Общие команды Docker
Команды управления образами
Скачивание образов
## Скачать образ из Docker Hub
docker pull ubuntu:latest
docker pull nginx:1.21
Список образов
## Список всех локальных образов
docker images
docker image ls
Создание образов
## Сборка образа из Dockerfile
docker build -t myapp:v1 .
Операции с контейнерами
Запуск контейнеров
## Запустить новый контейнер
docker run -d --name web-server nginx
docker run -it ubuntu:latest /bin/bash
Команды управления контейнерами
| Команда | Описание | Пример |
|---|---|---|
docker ps |
Список запущенных контейнеров | docker ps |
docker ps -a |
Список всех контейнеров | docker ps -a |
docker start |
Запустить остановленный контейнер | docker start web-server |
docker stop |
Остановить запущенный контейнер | docker stop web-server |
docker rm |
Удалить контейнер | docker rm web-server |
Команды работы с сетями
graph TD
A[Команды Docker для работы с сетями]
A --> B[Создать сеть]
A --> C[Список сетей]
A --> D[Просмотреть сеть]
Операции с сетями
## Создать пользовательскую сеть
docker network create mynetwork
## Список сетей
docker network ls
## Подключить контейнер к сети
docker network connect mynetwork web-server
Управление томами
## Создать том
docker volume create mydata
## Список томов
docker volume ls
## Подмонтировать том к контейнеру
docker run -v mydata:/app nginx
Отладка и проверка
## Просмотреть логи контейнера
docker logs web-server
## Выполнить команду внутри запущенного контейнера
docker exec -it web-server bash
## Просмотреть подробности о контейнере
docker inspect web-server
Дополнительные команды
Очистка
## Удалить неиспользуемые образы
docker image prune
## Удалить все остановленные контейнеры
docker container prune
Рекомендации
- Всегда используйте конкретные теги образов
- Удаляйте ненужные контейнеры и образы
- Используйте тома для сохранения данных
- Используйте изоляцию сетей
LabEx рекомендует освоить эти общие команды Docker CLI для эффективного управления контейнерными средами.
Шаблоны рабочих процессов CLI
Рабочий процесс разработки
graph TD
A[Разработка кода] --> B[Сборка Docker образа]
B --> C[Тестирование контейнера]
C --> D[Загрузка в реестр]
D --> E[Развертывание контейнера]
Типичный цикл разработки
## Клонировать проект
git clone https://github.com/example/project
## Создать Dockerfile
touch Dockerfile
## Собрать образ
docker build -t myapp:dev .
## Запустить контейнер для тестирования
docker run -d --name test-container myapp:dev
Рабочий процесс непрерывной интеграции
Сборка и тестирование
## Сборка образа с аргументами сборки
docker build --build-arg ENV=development -t myapp:ci .
## Запуск автоматических тестов
docker run --rm myapp:ci npm test
Управление жизненным циклом контейнера
Этапы рабочего процесса
| Этап | Команда Docker | Назначение |
|---|---|---|
| Сборка | docker build |
Создание образа |
| Тестирование | docker run |
Валидация контейнера |
| Загрузка | docker push |
Обмен образом |
| Развертывание | docker run |
Запуск в продакшене |
Развертывание нескольких контейнеров
Рабочий процесс Docker Compose
## Определение сервисов в docker-compose.yml
version: '3'
services:
web:
build: .
ports:
- "8000:80"
database:
image: postgres:latest
## Запуск многоконтейнерной среды
docker-compose up -d
Шаблон микросервисов
graph TD
A[Сервис API] --> B[Сервис базы данных]
A --> C[Сервис кэша]
A --> D[Сервис аутентификации]
Управление сервисами
## Создание сети для микросервисов
docker network create microservices-net
## Запуск сервисов с подключением к сети
docker run -d --name api --network microservices-net myapi
docker run -d --name database --network microservices-net mydb
Рабочий процесс отладки
Шаги по устранению неполадок
## Просмотр логов контейнера
docker logs api-service
## Выполнение интерактивной оболочки
docker exec -it api-service /bin/bash
## Проверка использования ресурсов контейнера
docker stats api-service
Рабочий процесс развертывания в продакшене
Стратегия маркировки образов
## Маркировка образа для продакшена
docker tag myapp:latest myregistry.com/myapp:v1.0
## Загрузка в частный реестр
docker push myregistry.com/myapp:v1.0
## Скачивание и запуск в продакшене
docker pull myregistry.com/myapp:v1.0
docker run -d myregistry.com/myapp:v1.0
Рекомендации
- Используйте конкретные теги образов
- Реализуйте многоэтапную сборку
- Минимизируйте размер образа
- Используйте Docker Compose для сложных конфигураций
LabEx рекомендует практиковать эти шаблоны рабочих процессов для оптимизации управления и развертывания контейнеров Docker.
Summary
By mastering Docker CLI commands and workflow patterns, developers can significantly enhance their container management skills. This tutorial has equipped you with fundamental techniques to navigate, create, manage, and optimize Docker containers, empowering you to leverage Docker's full potential in modern software development and deployment scenarios.



