Применимо к редакции: МСВСфера 9 (ФСТЭК)

15.3. Управление контейнерами

15.3.1. Команда docker container

Команда docker container используется для управления контейнерами.

Синтаксис команды:

docker container <команда>

Используемые команды управления контейнерами перечислены в таблице.

Таблица 56 - Команды управления контейнерами

Команда

Описание

docker container attach

Прикрепить локальные стандартные потоки ввода, вывода и вывода ошибок к запущенному контейнеру.

docker container commit

Создание нового образа из изменений контейнера.

docker container cp

Копирование файлов/папок между контейнером и хостовой файловой системой.

docker container create

Создание нового контейнера.

docker container diff

Проверка изменений файлов или каталогов в файловой системе контейнера.

docker container exec

Выполнение команды в запущенном контейнере.

docker container export

Экспорт файловой системы контейнера в виде tar-архива.

docker container inspect

Вывод подробной информации об одном или нескольких контейнерах.

docker container kill

Принудительное завершение одного или нескольких запущенных контейнеров.

docker container logs

Просмотр журналов регистрации контейнера.

docker container ls

Вывод списка контейнеров.

docker container pause

Приостановка всех процессов в одном или нескольких контейнерах.

docker container port

Список портов контейнера.

docker container prune

Удаление всех остановленных контейнеров.

docker container rename

Изменение имени контейнера.

docker container restart

Перезапуск одного или нескольких контейнеров.

docker container rm

Удаление одного или нескольких контейнеров.

docker container run

Создание и запуск нового контейнера из образа.

docker container start

Запуск одного или нескольких остановленных контейнеров.

docker container stat

Отображение статистики использования ресурсов контейнера(ов) в реальном времени.

docker container stop

Остановка одного или нескольких запущенных контейнеров.

docker container top

Отображение запущенных процессов контейнера.

docker container unpause

Отключение всех процессов в одном или нескольких контейнерах.

docker container update

Обновление конфигурации одного или нескольких контейнеров.

docker container wait

Блокировка остановки одного или нескольких контейнеров, вывод их кодов выхода.

При использовании команд допускается сокращение записи до вида:

docker <команда>

Далее будут рассмотрены основные команды управления контейнерами.

С подробной информацией обо всех командах и их работе можно ознакомиться, выполнив:

$ docker container <команда> --help

15.3.2. Команда docker build

Команда docker build используется для создания образа на основе файла Dockerfile и контекста.

Контекст — это набор файлов, находящихся по пути, определённому с помощью переменной PATH или URL.

  • PATH — это директория в локальной системе.

  • URL — это удалённый репозиторий.

Контекст сборки обрабатывается рекурсивно, поэтому PATH включает как директорию, так и все её поддиректории, а URL — как репозиторий, так и все его подмодули.

Синтаксис команды:

docker build [<опции>] PATH | URL | -

Опции команды перечислены в таблице.

Таблица 57 - Опции команды docker build

Команда

Описание

-f, --file <string>

Имя Dockerfile.

--isolation <string>

Технология изоляции контейнеров, по умолчанию default.

--label <list>

Установка метаданных для образа.

-m, --memory <bytes>

Ограничение памяти.

--network <string>

Установить режим работы с сетью для инструкций RUN во время сборки (по умолчанию default).

--rm

Удалять промежуточные контейнеры после успешной сборки (по умолчанию true).

15.3.3. Команда docker image

Команда docker image предназначена для управления образами.

Синтаксис команды:

docker image <команда>

Доступные команды перечислены в таблице.

Таблица 58 - Команды docker image

Команда

Описание

docker image build

Создание образа из Docker-файла.

docker image history

Вывод истории образа.

docker image import

Импорт содержимого из tarball для создания образа файловой системы.

docker image inspect

Вывод подробной информации об одном или нескольких образах.

docker image load

Загрузка образа из tar-архива или STDIN.

docker image ls

Вывод списка образов.

docker image prune

Удаление неиспользуемых образов.

docker image pull

Загрузка образа из registry.

docker image push

Загрузка образа в registry.

docker image rm

Удалить один или несколько образов.

docker image save

Сохранить один или несколько образов в tar-архив (по умолчанию передается в STDOUT).

docker image tag

Создать тег TARGET_IMAGE, который ссылается на SOURCE_IMAGE.

15.3.4. Команда docker images

Команда docker images используется для вывода списка доступных образов.

Синтаксис команды:

docker images [<опции>] [<репозиторий>[:<тег>]]

Опции команды перечислены в таблице.

Таблица 59 - Опции команды docker images

Команда

Описание

--all, -a

Показать все образы (по умолчанию промежуточные образы скрыты).

--digests

Показать дайджест.

--filter, -f

Фильтрация выходных данных на основе предоставленных условий.

--format

Форматирование вывода с использованием пользовательского шаблона table. Вывод в формате таблицы с заголовками столбцов (по умолчанию) table TEMPLATE.

--no-trunc

Не обрезать вывод.

--quiet, -q

Показывать только идентификаторы образов.

15.3.5. Команда docker create

Команда docker container create (или сокращённо: docker create) создает новый контейнер из указанного образа, не запуская его. При создании контейнера демон docker создает записываемый слой контейнера поверх указанного образа и готовит его к выполнению указанной команды. Идентификатор контейнера затем выводится в STDOUT. Действия похожи на выполнение команды docker run -d, за исключением того, что контейнер никогда не запускается. Затем можно использовать команду docker container start (или сокращённо: docker start) для запуска контейнера в любой момент.

Синтаксис команды:

docker create [<опции>] <образ> [<команда>] [<аргументы>...]

Опции команды перечислены в таблице.

Таблица 60 - Опции команды docker create

Команда

Описание

--attach ( -a)

Позволяет манипулировать вводом и выводом по мере необходимости, для вывода информации используется стандартный ввод/вывод контейнера STDIN, STDOUT и STDERR.

--cpus

Определяет количество процессоров.

--device

Добавить хост-устройство в контейнер.

--hostname, -h

Имя хоста контейнера.

--interactive, -i

Оставить STDIN открытым без присоединения к терминалу.

--memory, -m

Лимит памяти. Данный параметр устанавливает верхний предел памяти, доступной для контейнера. Предел задаётся в контрольной группе, и приложения в контейнере могут запрашивать его по адресу /sys/fs/cgroup/memory/memory.limit_in_bytes.

--rm

Автоматическое удаление контейнер после выхода.

--tty, -t

Выделить псевдотерминал.

--user, -u

Имя пользователя или UID (формат: <name|uid>[:<group|gid>]).

--volume, -v

Примонтировать том.

--volumes-from

Смонтировать тома из указанного(ых) контейнера(ов).

--workdir, -w

Задать рабочий каталог внутри контейнера.

15.3.6. Команда docker run

Команда docker run используется для создания и запуска контейнера из образа. Может принимать несколько аргументов, таких как имя образа, параметры запуска контейнера и команду, которую необходимо выполнить внутри контейнера.

Синтаксис команды:

docker run [<опции>] <образ> [<команды>] [<аргументы>…]

Основные опции команды перечислены в таблице.

Таблица 61 - Опции команды docker run

Команда

Описание

--attach ( -a)

Позволяет манипулировать вводом и выводом по мере необходимости, для вывода информации используется стандартный ввод/вывод контейнера STDIN, STDOUT и STDERR.

--cpus

Определяет количество процессоров.

--detach, -d

Запустить контейнер в фоновом режиме и напечатать ID контейнера.

--device

Добавить хост-устройство в контейнер.

--hostname, -h

Имя хоста контейнера.

--interactive, -i

Оставить STDIN открытым без присоединения к терминалу.

--memory, -m

Лимит памяти. Данный параметр устанавливает верхний предел памяти, доступной для контейнера. Предел задаётся в контрольной группе, и приложения в контейнере могут запрашивать его по адресу /sys/fs/cgroup/memory/memory.limit_in_bytes.

--privileged

Предоставление расширенных прав контейнеру

--rm

Автоматическое удаление контейнер после выхода.

--tty, -t

Выделить псевдотерминал.

--user, -u

Имя пользователя или UID (формат: <name|uid>[:<group|gid>]).

--volume, -v

Примонтировать том.

--workdir, -w

Задать рабочий каталог внутри контейнера.

15.3.7. Команда docker start

Команда docker start предназначена для запуска контейнера.

Синтаксис команды:

docker start [<опции>] <контейнер> [<контейнер_2>...]

Используемые опции команды перечислены в таблице.

Таблица 62 - Опции команды docker start

Команда

Описание

--attach, -a

Прикрепить STDOUT/STDERR и переадресовать сигналы.

--detach-keys

Переопределение последовательности клавиш для отсоединения контейнера.

--interactive, -i

Прикрепить STDIN контейнера.

15.3.8. Команда docker stop

Команда docker stop предназначена для остановки работы контейнера.

Основной процесс внутри контейнера получит SIGTERM, а по истечении времени ожидания — SIGKILL.

Синтаксис команды:

docker stop [<опции>] <контейнер> [<контейнер_2>...]

Используемые опции команды перечислены в таблице.

Таблица 63 - Опции команды docker stop

Команда

Описание

--time , -t

Время ожидания (в секундах) перед принудительной остановкой контейнера.

15.3.9. Команда docker pause

Команда docker pause приостанавливает все процессы в указанных контейнерах.

Синтаксис команды:

docker pause <контейнер> [<контейнер_2>...]

15.3.10. Команда docker login

Для доступа в некоторые централизованные хранилища образов необходимо иметь учётную запись. После регистрации войти в систему можно, используя команду docker login.

Синтаксис команды:

docker login [<опции>] [<сервер>]

Для входа в систему необходимо указать имя пользователя и пароль своей учётной записи. Для доступа к собственным хранилищам образов необходимо указать имя сервера, если сервер не указан, он определяется демоном docker по умолчанию.

Основные параметры команды перечислены в таблице.

Таблица 64 - Опции команды docker login

Команда

Описание

--password, -p <пароль>

Пароль.

--password-stdin

Получить пароль со стандартного ввода.

--username, -u <имя>

Имя пользователя.

15.3.11. Команда docker attach

Команда docker attach позволяет прикрепить стандартный ввод (STDIN), вывод (STDOUT) и вывод ошибок (STDERR) локального терминала к контейнеру, используя идентификатор или имя контейнера. Это позволит просматривать его текущий вывод или управлять им в интерактивном режиме, как если бы команды выполнялись непосредственно в локальном терминале.

Для остановки контейнера используется сочетание клавиш «CTRL+C», которое передаст контейнеру сигнал SIGKILL. Для остановки контейнера может быть использована команда exit, которая корректно завершает его работу — это наиболее предпочтительный вариант остановки контейнера. Если контейнер был запущен с параметрами -i и -t, можно отсоединиться от контейнера и оставить его запущенным, используя последовательность клавиш «CTRL+P» и «CTRL+Q».

Синтаксис команды:

docker attach [<опции>] <контейнер>

Основные параметры команды перечислены в таблице.

Таблица 65 - Опции команды docker attach

Команда

Описание

--detach-keys

Переопределить последовательность клавиш для отсоединения контейнера.

--no-stdin

Не присоединять STDIN.

--sig-proxy

Передать все полученные сигналы процессу. Значение по умолчанию — true.

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 [<опции>] <контейнер> <команда> [<аргументы>...]

Опции команды перечислены в таблице.

Таблица 66 - Опции команды docker exec

Команда

Описание

-d, --detach

Режим отсоединения: выполнение команды в фоновом режиме.

--detach-keys <string>

Переопределение последовательности клавиш для отсоединения контейнера.

-e, --env <list>

Установка переменных окружения.

--env-file <list>

Чтение файла с переменными окружения.

-i, --interactive

Оставить STDIN открытым, даже если он не подключён.

--privileged

Предоставить расширенные привилегии команде.

-t, --tty

Выделить псевдотерминал.

-u, --user <string>

Имя пользователя или UID (формат: <name|uid> [:<group|gid>]).

-w, --workdir <string>

Рабочая директория внутри контейнера.

15.3.13. Команда docker logs

Команда docker logs предназначена для вывода журналов контейнера.

Синтаксис команды:

docker logs [<опции>] <контейнер>

Используемые параметры команды перечислены в таблице.

Таблица 67 - Опции команды docker logs

Команда

Описание

--details

Показать дополнительные детали, предоставляемые в журнале.

-f, --follow

Следить за выводом журналов.

--since <string>

Показывать записи с указанной временной метки (например, 2022-03-01T13:23:37Z) или с определённого промежутка времени (например, 42m — отобразит записи журнала за последние 42 минуты).

-n, --tail <string>

Количество строк для отображения записей с конца журнала (по умолчанию все).

-t, --timestamps

Показать временные метки.

--until <string>

Показать записи до указанной временной метки (например, 2022-03-01T13:23:37Z) или до определённого промежутка времени (например, 42m — отобразит записи, сделанные 42 минуты назад и ранее).

15.3.14. Команда docker stats

Команда docker stats предназначена для отображения статистики использования ресурсов контейнеров в реальном времени. Для того чтобы ограничить данные одним или несколькими конкретными контейнерами, необходимо указать список имён или идентификаторов контейнеров, разделённых пробелом. Также можно указать остановленный контейнер, но остановленные контейнеры не возвращают никаких данных.

Синтаксис команды:

docker stats [<опции>] [<контейнер>...]

Используемые опции команды перечислены в таблице.

Таблица 68 - Опции команды docker stats

Команда

Описание

--all, -a

Показать все контейнеры (по умолчанию отображаются только запущенные).

--format

Форматирование вывода с использованием пользовательского шаблона table — вывод в формате таблицы с заголовками столбцов (по умолчанию) table TEMPLATE.

--no-stream

Отключить потоковую статистику и получать только первый результат.

--no-trunc

Не обрезать вывод.

15.3.15. Команда docker tag

Команда docker tag предназначена для присвоения определённого имени и, по желанию, тега образу в локальном хранилище.

Синтаксис команды:

docker tag SOURCE_IMAGE[:<тег>] TARGET_IMAGE[:<тег>]
  • SOURCE_IMAGE — это имя образа или его ID, которому требуется назначить новое имя и/или тег.

  • TARGET_IMAGE — новое имя образа, которое необходимо ему присвоить.

Дополнительный параметр <тег> может использоваться для указания конкретной версии образа.

Если задано имя собственного хранилища образов, за ним может дополнительно следовать номер порта в формате :8080. Имя хранилища должно соответствовать стандартным правилам DNS, но не может содержать символы подчёркивания. Компоненты имени могут содержать строчные буквы, цифры и разделители. Разделитель определяется как точка, один или два знака подчёркивания или один или несколько дефисов. Компонент имени не может начинаться или заканчиваться разделителем. Имя тега может содержать строчные и прописные буквы, цифры, символы подчёркивания, точки и дефисы. Имя тега не может начинаться с точки или дефиса и может содержать не более 128 символов.