Использование командной строки Docker

Для просмотра списка команд, выполните docker без параметров или docker help:

$ docker
Usage: docker [OPTIONS] COMMAND [arg...]
       docker [ --help | -v | --version ]

A self-sufficient runtime for containers.

Options:

  --config=~/.docker              Location of client config files
  -D, --debug                     Enable debug mode
  -H, --host=[]                   Daemon socket(s) to connect to
  -h, --help                      Print usage
  -l, --log-level=info            Set the logging level
  --tls                           Use TLS; implied by --tlsverify
  --tlscacert=~/.docker/ca.pem    Trust certs signed only by this CA
  --tlscert=~/.docker/cert.pem    Path to TLS certificate file
  --tlskey=~/.docker/key.pem      Path to TLS key file
  --tlsverify                     Use TLS and verify the remote
  -v, --version                   Print version information and quit

Commands:
    attach    Attach to a running container
    # [...]

В зависимости от конфигурации вашей Docker системы, вам может потребоваться добавлять перед каждой командой docker команду sudo. Для того, чтобы избежать необходимости использовать sudo с командами docker, ваш системный администратор может создать Unix группу docker и добавить в нее нужных пользователей.

Для большей информации по установке Docker или конфигурации sudo, читайте инструкции по установке для вашей операционной системы.

Переменные окружения

Для удобства, следующий список переменных окружения поддерживается в командной строке docker:

  • DOCKER_API_VERSION Версия API (например 1.19)
  • DOCKER_CONFIG Местоположение конфигурационных файлов клиента.
  • DOCKER_CERT_PATH Местоположение ключей аутентификация.
  • DOCKER_DRIVER The graph driver to use.
  • DOCKER_HOST Сокет демона для подключения.
  • DOCKER_NOWARN_KERNEL_VERSION Предотвратить предупреждения, что ядро Linux не пригодно для Docker.
  • DOCKER_RAMDISK При задании отключает pivot_root.
  • DOCKER_TLS_VERIFY При задании Docker использует TLS и проверяет удаленные.
  • DOCKER_CONTENT_TRUST При задании Docker подписывает и проверяет образы. Эквивалентно --disable-content-trust=false для команд build, create, pull, push, run.
  • DOCKER_CONTENT_TRUST_SERVER URL сервера для подписи. По умолчанию соответствует URL реестра.
  • DOCKER_TMPDIR Место для временных файлов Docker.

Поскольку Docker написан с использованием Go, вы также можете использовать переменные окружения режима исполнения Go. В частности, вам могут пригодится:

  • HTTP_PROXY
  • HTTPS_PROXY
  • NO_PROXY

Данные переменные окружения Go не чувствительны к регистру. Читайте спецификацию Go для более подробной информации.

Конфигурационные файлы

По умолчанию, командная строка Docker хранит свои конфигурационные файлы в каталоге .docker внутри вашей $HOME директории. Тем не менее, вы можете задать другое место с помощью переменной окружения DOCKER_CONFIG или опции командной строки --config. Если заданны оба параметра, опция --config заменяет переменную окружения DOCKER_CONFIG. К примеру:

docker --config ~/testconfigs/ ps

Указывает Docker использовать конфигурационные файлы из папки ~/testconfigs/ при использовании команды ps.

Docker управляет множество файлов в каталоге конфигурации и вы не должны изменять их. Тем не менее, вы можете изменять файл config.json для управления некоторыми аспектами поведения команды docker.

В настоящее время, вы можете изменять поведение docker команд используя переменные окружения или аргументы командной строки. Для этих же целей вы также можете использовать опции в config.json. При использовании данных механизмов, вы должны помнить порядок старшинства. Параметры командной строки переопределяют переменные окружения и переменные окружения переопределяют свойства заданные в файле config.json.

Файл config.json хранит свойства в формате JSON:

Свойство HttpHeaders определяет набор заголовков для включения во всех сообщениях, посланных от клиента Docker к демону. Docker не пытается интерпретировать или как-то обработать эти заголовки, а просто вставляет их в сообщения. Docker не позволяет этим заголовкам изменять предустановленные.

Свойство psFormat задает формат по-умолчанию для вывода docker ps. Docker клиент использует данное свойство для команды docker ps, когда флаг --format не задан. Если данное свойство не задано, клиент возвращает данные в табличном формате по умолчанию. Для просмотра списка поддерживаемых директив форматирования, читайте документацию по форматированию docker ps

После подключения к контейнеру, пользователи отключаются от него, оставляя его запущенным с помощью сочетания клавиш CTRL-p CTRL-q. Эти сочетания клавиш можно изменить с помощью свойства detachKeys. Задайте значение <sequence> для свойства. Формат <sequence> представляет собой разделенный запятыми список букв [a-Z] или комбинацию ctrl- с любым из следующих символов:

  • a-z (одиночная буква в нижнем регистре)
  • @ (собака)
  • [ (левая скобка)
  • \\ (две обратных косых черты)
  • _ (нижнее подчеркивание)
  • ^ (знак вставки)

Изменения применяются ко всем контейнерам запущенным с вашего Docker клиента. Пользователи могут изменить ваши настройки или клавиши по умолчанию в настройках контейнера. Для этого, пользователь может задать флаг --detach-keys через команды docker attach, docker exec, docker run или docker start.

Свойство imagesFormat задает формат по умолчанию для вывода команды docker images. Когда флаг --format не задан, команда docker images Docker клиент использует это свойство. Если данное свойство не задано, клиент выводит таблицу в формате по умолчанию. Для просмотра директив для задания форматов, читайте документацию по форматированию docker images

Ниже приведен пример файла config.json:

{
  "HttpHeaders": {
    "MyHeader": "MyValue"
  },
  "psFormat": "table {{.ID}}\\t{{.Image}}\\t{{.Command}}\\t{{.Labels}}",
  "imagesFormat": "table {{.ID}}\\t{{.Repository}}\\t{{.Tag}}\\t{{.CreatedAt}}",
  "detachKeys": "ctrl-e,e"
}

Цифровые подписи

При использовании собственного сервера цифровых подписей и и собственных сертификатов или внутреннего центра сертификации, вам нужно разместить сертификат в tls/<registry_url>/ca.crt в каталоге конфигурационных файлов docker.

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

Помощь

Для просмотра справки по любой команде просто допишите после команды опцию --help.

$ docker run --help

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Run a command in a new container

  -a, --attach=[]            Attach to STDIN, STDOUT or STDERR
  --cpu-shares=0             CPU shares (relative weight)
...

Виды опций

Опции в виде одиночных символов могут комбинироваться, так вместо docker run -i -t --name test busybox sh, вы можете написать docker run -it --name test busybox sh.

Булевы

Булевые опции имеют вид -d=false. Значение отображенное в справке является значением по умолчанию которое устанавливается если вы не задали флаг. Если вы задаете булевый флаг без значения, то он устанавливается в значение true, независимо от значения по умолчанию.

К примеру, выполнение команды docker run -d установит значение true, и ваш контейнер будет запущен в фоновом режиме.

Опции со значением по умолчанию true (например, docker build --rm=true) могут быть установлены явно только в противоположное значение false:

$ docker build --rm=false .

Множественные

Вы можете задавать опции вида -a=[] несколько раз в одной командной строке, например, как здесь:

$ docker run -a stdin -a stdout -i -t ubuntu /bin/bash
$ docker run -a stdin -a stdout -a stderr ubuntu /bin/ls

Иногда, несколько вариантов можно передать в виде комплексного значения как для -v:

$ docker run -v /host:/container example/mysql

Примечание: Не используйте опции -t и -a stderr вместе из-за ограничений в реализации pty. Все stderr в режиме pty отправляются в stdout.

Строки и числа

Опции вида --name="" принимают в качестве значения строку, и могут быть заданы лишь единожды. Опции вида -c=0 используют в качестве значения целое число, и также могут быть заданы только один раз.


Комментарии:

Комментариев нет, желаете стать первым?

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