15.3. Управление контейнерами
15.3.1. Команда docker container
Команда docker container
используется для управления контейнерами.
Синтаксис команды:
docker container <команда>
Используемые команды управления контейнерами перечислены в таблице.
Команда |
Описание |
---|---|
|
Прикрепить локальные стандартные потоки ввода, вывода и вывода ошибок к запущенному контейнеру. |
|
Создание нового образа из изменений контейнера. |
|
Копирование файлов/папок между контейнером и хостовой файловой системой. |
|
Создание нового контейнера. |
|
Проверка изменений файлов или каталогов в файловой системе контейнера. |
|
Выполнение команды в запущенном контейнере. |
|
Экспорт файловой системы контейнера в виде tar-архива. |
|
Вывод подробной информации об одном или нескольких контейнерах. |
|
Принудительное завершение одного или нескольких запущенных контейнеров. |
|
Просмотр журналов регистрации контейнера. |
|
Вывод списка контейнеров. |
|
Приостановка всех процессов в одном или нескольких контейнерах. |
|
Список портов контейнера. |
|
Удаление всех остановленных контейнеров. |
|
Изменение имени контейнера. |
|
Перезапуск одного или нескольких контейнеров. |
|
Удаление одного или нескольких контейнеров. |
|
Создание и запуск нового контейнера из образа. |
|
Запуск одного или нескольких остановленных контейнеров. |
|
Отображение статистики использования ресурсов контейнера(ов) в реальном времени. |
|
Остановка одного или нескольких запущенных контейнеров. |
|
Отображение запущенных процессов контейнера. |
|
Отключение всех процессов в одном или нескольких контейнерах. |
|
Обновление конфигурации одного или нескольких контейнеров. |
|
Блокировка остановки одного или нескольких контейнеров, вывод их кодов выхода. |
При использовании команд допускается сокращение записи до вида:
docker <команда>
Далее будут рассмотрены основные команды управления контейнерами.
С подробной информацией обо всех командах и их работе можно ознакомиться, выполнив:
$ docker container <команда> --help
15.3.2. Команда docker build
Команда docker build
используется для создания образа на основе файла Dockerfile и контекста.
Контекст — это набор файлов, находящихся по пути, определённому с помощью переменной PATH
или URL
.
PATH
— это директория в локальной системе.URL
— это удалённый репозиторий.
Контекст сборки обрабатывается рекурсивно, поэтому PATH
включает как директорию, так и все её поддиректории,
а URL
— как репозиторий, так и все его подмодули.
Синтаксис команды:
docker build [<опции>] PATH | URL | -
Опции команды перечислены в таблице.
Команда |
Описание |
---|---|
|
Имя Dockerfile. |
|
Технология изоляции контейнеров, по умолчанию |
|
Установка метаданных для образа. |
|
Ограничение памяти. |
|
Установить режим работы с сетью для инструкций |
|
Удалять промежуточные контейнеры после успешной сборки (по умолчанию |
15.3.3. Команда docker image
Команда docker image
предназначена для управления образами.
Синтаксис команды:
docker image <команда>
Доступные команды перечислены в таблице.
Команда |
Описание |
---|---|
|
Создание образа из Docker-файла. |
|
Вывод истории образа. |
|
Импорт содержимого из tarball для создания образа файловой системы. |
|
Вывод подробной информации об одном или нескольких образах. |
|
Загрузка образа из tar-архива или STDIN. |
|
Вывод списка образов. |
|
Удаление неиспользуемых образов. |
|
Загрузка образа из registry. |
|
Загрузка образа в registry. |
|
Удалить один или несколько образов. |
|
Сохранить один или несколько образов в tar-архив (по умолчанию передается в STDOUT). |
|
Создать тег |
15.3.4. Команда docker images
Команда docker images
используется для вывода списка доступных образов.
Синтаксис команды:
docker images [<опции>] [<репозиторий>[:<тег>]]
Опции команды перечислены в таблице.
Команда |
Описание |
---|---|
|
Показать все образы (по умолчанию промежуточные образы скрыты). |
|
Показать дайджест. |
|
Фильтрация выходных данных на основе предоставленных условий. |
|
Форматирование вывода с использованием пользовательского шаблона |
|
Не обрезать вывод. |
|
Показывать только идентификаторы образов. |
15.3.5. Команда docker create
Команда docker container create
(или сокращённо: docker create
) создает новый контейнер из указанного образа, не запуская его.
При создании контейнера демон docker создает записываемый слой контейнера поверх указанного
образа и готовит его к выполнению указанной команды.
Идентификатор контейнера затем выводится в STDOUT.
Действия похожи на выполнение команды docker run -d
, за исключением того, что контейнер никогда не запускается.
Затем можно использовать команду docker container start
(или сокращённо: docker start
) для запуска контейнера в любой момент.
Синтаксис команды:
docker create [<опции>] <образ> [<команда>] [<аргументы>...]
Опции команды перечислены в таблице.
Команда |
Описание |
---|---|
|
Позволяет манипулировать вводом и выводом по мере необходимости, для вывода информации используется стандартный ввод/вывод контейнера STDIN, STDOUT и STDERR. |
|
Определяет количество процессоров. |
|
Добавить хост-устройство в контейнер. |
|
Имя хоста контейнера. |
|
Оставить STDIN открытым без присоединения к терминалу. |
|
Лимит памяти. Данный параметр устанавливает верхний предел памяти, доступной для контейнера.
Предел задаётся в контрольной группе, и приложения в контейнере могут запрашивать его по адресу |
|
Автоматическое удаление контейнер после выхода. |
|
Выделить псевдотерминал. |
|
Имя пользователя или UID (формат: |
|
Примонтировать том. |
|
Смонтировать тома из указанного(ых) контейнера(ов). |
|
Задать рабочий каталог внутри контейнера. |
15.3.6. Команда docker run
Команда docker run
используется для создания и запуска контейнера из образа.
Может принимать несколько аргументов, таких как имя образа, параметры запуска контейнера и команду, которую необходимо выполнить внутри контейнера.
Синтаксис команды:
docker run [<опции>] <образ> [<команды>] [<аргументы>…]
Основные опции команды перечислены в таблице.
Команда |
Описание |
---|---|
|
Позволяет манипулировать вводом и выводом по мере необходимости, для вывода информации используется стандартный ввод/вывод контейнера STDIN, STDOUT и STDERR. |
|
Определяет количество процессоров. |
|
Запустить контейнер в фоновом режиме и напечатать ID контейнера. |
|
Добавить хост-устройство в контейнер. |
|
Имя хоста контейнера. |
|
Оставить STDIN открытым без присоединения к терминалу. |
|
Лимит памяти. Данный параметр устанавливает верхний предел памяти, доступной для контейнера.
Предел задаётся в контрольной группе, и приложения в контейнере могут запрашивать его по адресу |
|
Предоставление расширенных прав контейнеру |
|
Автоматическое удаление контейнер после выхода. |
|
Выделить псевдотерминал. |
|
Имя пользователя или UID (формат: |
|
Примонтировать том. |
|
Задать рабочий каталог внутри контейнера. |
15.3.7. Команда docker start
Команда docker start
предназначена для запуска контейнера.
Синтаксис команды:
docker start [<опции>] <контейнер> [<контейнер_2>...]
Используемые опции команды перечислены в таблице.
Команда |
Описание |
---|---|
|
Прикрепить STDOUT/STDERR и переадресовать сигналы. |
|
Переопределение последовательности клавиш для отсоединения контейнера. |
|
Прикрепить STDIN контейнера. |
15.3.8. Команда docker stop
Команда docker stop
предназначена для остановки работы контейнера.
Основной процесс внутри контейнера получит SIGTERM
, а по истечении времени ожидания — SIGKILL
.
Синтаксис команды:
docker stop [<опции>] <контейнер> [<контейнер_2>...]
Используемые опции команды перечислены в таблице.
Команда |
Описание |
---|---|
|
Время ожидания (в секундах) перед принудительной остановкой контейнера. |
15.3.9. Команда docker pause
Команда docker pause
приостанавливает все процессы в указанных контейнерах.
Синтаксис команды:
docker pause <контейнер> [<контейнер_2>...]
15.3.10. Команда docker login
Для доступа в некоторые централизованные хранилища образов необходимо иметь учётную запись.
После регистрации войти в систему можно, используя команду docker login
.
Синтаксис команды:
docker login [<опции>] [<сервер>]
Для входа в систему необходимо указать имя пользователя и пароль своей учётной записи. Для доступа к собственным хранилищам образов необходимо указать имя сервера, если сервер не указан, он определяется демоном docker по умолчанию.
Основные параметры команды перечислены в таблице.
Команда |
Описание |
---|---|
|
Пароль. |
|
Получить пароль со стандартного ввода. |
|
Имя пользователя. |
15.3.11. Команда docker attach
Команда docker attach
позволяет прикрепить стандартный ввод (STDIN), вывод (STDOUT) и вывод ошибок (STDERR)
локального терминала к контейнеру, используя идентификатор или имя контейнера.
Это позволит просматривать его текущий вывод или управлять им в интерактивном режиме,
как если бы команды выполнялись непосредственно в локальном терминале.
Для остановки контейнера используется сочетание клавиш «CTRL+C», которое передаст контейнеру сигнал SIGKILL.
Для остановки контейнера может быть использована команда exit
,
которая корректно завершает его работу — это наиболее предпочтительный вариант остановки контейнера.
Если контейнер был запущен с параметрами -i
и -t
, можно отсоединиться от контейнера и оставить его запущенным,
используя последовательность клавиш «CTRL+P» и «CTRL+Q».
Синтаксис команды:
docker attach [<опции>] <контейнер>
Основные параметры команды перечислены в таблице.
Команда |
Описание |
---|---|
|
Переопределить последовательность клавиш для отсоединения контейнера. |
|
Не присоединять STDIN. |
|
Передать все полученные сигналы процессу. Значение по умолчанию — |
15.3.12. Команда docker exec
Команда docker exec
запускает новую команду в работающем контейнере.
Команда, запущенная с помощью docker exec
, выполняется только во время
работы основного процесса контейнера (PID 1), и она не перезапускается,
если перезапускается контейнер.
Команда запускается в директории контейнера по умолчанию.
Если базовый образ имеет пользовательский каталог, указанный директивой WORKDIR
в Dockerfile,
тогда используется данный каталог.
Команда должна быть исполняемым файлом. Команда, заключённая в кавычки, не сработает.
Например, docker exec -it my_container sh -c "echo a && echo b"
будет выполнена, а docker exec -it my_container "echo a && echo b"
— нет.
Синтаксис команды:
docker exec [<опции>] <контейнер> <команда> [<аргументы>...]
Опции команды перечислены в таблице.
Команда |
Описание |
---|---|
|
Режим отсоединения: выполнение команды в фоновом режиме. |
|
Переопределение последовательности клавиш для отсоединения контейнера. |
|
Установка переменных окружения. |
|
Чтение файла с переменными окружения. |
|
Оставить STDIN открытым, даже если он не подключён. |
|
Предоставить расширенные привилегии команде. |
|
Выделить псевдотерминал. |
|
Имя пользователя или UID (формат: |
|
Рабочая директория внутри контейнера. |
15.3.13. Команда docker logs
Команда docker logs
предназначена для вывода журналов контейнера.
Синтаксис команды:
docker logs [<опции>] <контейнер>
Используемые параметры команды перечислены в таблице.
Команда |
Описание |
---|---|
|
Показать дополнительные детали, предоставляемые в журнале. |
|
Следить за выводом журналов. |
|
Показывать записи с указанной временной метки
(например, |
|
Количество строк для отображения записей с конца журнала (по умолчанию |
|
Показать временные метки. |
|
Показать записи до указанной временной метки
(например, |
15.3.14. Команда docker stats
Команда docker stats
предназначена для отображения статистики использования
ресурсов контейнеров в реальном времени.
Для того чтобы ограничить данные одним или несколькими конкретными контейнерами,
необходимо указать список имён или идентификаторов контейнеров, разделённых пробелом.
Также можно указать остановленный контейнер, но остановленные контейнеры не возвращают никаких данных.
Синтаксис команды:
docker stats [<опции>] [<контейнер>...]
Используемые опции команды перечислены в таблице.
Команда |
Описание |
---|---|
|
Показать все контейнеры (по умолчанию отображаются только запущенные). |
|
Форматирование вывода с использованием пользовательского
шаблона |
|
Отключить потоковую статистику и получать только первый результат. |
|
Не обрезать вывод. |
15.3.15. Команда docker tag
Команда docker tag
предназначена для присвоения определённого имени и, по желанию, тега образу в локальном хранилище.
Синтаксис команды:
docker tag SOURCE_IMAGE[:<тег>] TARGET_IMAGE[:<тег>]
SOURCE_IMAGE
— это имя образа или его ID, которому требуется назначить новое имя и/или тег.TARGET_IMAGE
— новое имя образа, которое необходимо ему присвоить.
Дополнительный параметр <тег>
может использоваться для указания конкретной версии образа.
Если задано имя собственного хранилища образов, за ним может дополнительно следовать номер порта в формате :8080
.
Имя хранилища должно соответствовать стандартным правилам DNS, но не может содержать символы подчёркивания.
Компоненты имени могут содержать строчные буквы, цифры и разделители.
Разделитель определяется как точка, один или два знака подчёркивания или один или несколько дефисов.
Компонент имени не может начинаться или заканчиваться разделителем.
Имя тега может содержать строчные и прописные буквы, цифры, символы подчёркивания, точки и дефисы.
Имя тега не может начинаться с точки или дефиса и может содержать не более 128 символов.