Найти в Дзене
Linux | Network | DevOps

Опции команды docker run

Консольная команда docker run имеет около сотни опций, в том числе -d, -i, -t, -v и -w. В данной статье рассмотрим десять наиболее популярных опций, с которыми наверняка придется работать. Давайте разберемся! Пример команды с опциями, которые будут рассмотрены в данной статье: docker run \ --rm \ --detach \ --env KEY=VALUE \ --ip 10.10.9.75 \ --publish 3000:3000 \ --volume my_volume \ --name my_container \ --tty --interactive \ --volume /my_volume \ --workdir /app \ IMAGE bash Начнем с азов. Консольная команда docker run создает из docker-образа контейнер (точнее создает доступный для записи слой поверх слоев, содержащихся в docker-образе) и запускает его (выполняет указанную команду). В общем виде это выглядит так: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Команда docker run очень похожа на комбинацию команд docker create ... и docker start ..., подробнее о которых можно узнать в официальной документации. Опции команды docker run в алфавитном порядке. --detach, -d - по умолчанию,

Консольная команда docker run имеет около сотни опций, в том числе -d, -i, -t, -v и -w. В данной статье рассмотрим десять наиболее популярных опций, с которыми наверняка придется работать. Давайте разберемся!

Пример команды с опциями, которые будут рассмотрены в данной статье:

docker run \

--rm \

--detach \

--env KEY=VALUE \

--ip 10.10.9.75 \

--publish 3000:3000 \

--volume my_volume \

--name my_container \

--tty --interactive \

--volume /my_volume \

--workdir /app \

IMAGE bash

Начнем с азов. Консольная команда docker run создает из docker-образа контейнер (точнее создает доступный для записи слой поверх слоев, содержащихся в docker-образе) и запускает его (выполняет указанную команду). В общем виде это выглядит так:

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

Команда docker run очень похожа на комбинацию команд docker create ... и docker start ..., подробнее о которых можно узнать в официальной документации.

Опции команды docker run в алфавитном порядке.

--detach, -d - по умолчанию, docker-контейнер запускается присоединенным (attached) к стандартным потокам ввода-вывода. Параметр -d, --detach позволяет запускать контейнер в фоне и не выводить на экран содержимое потоков ввода-вывода.

--entrypoint - устанавливает или переопределяет используемую по умолчанию команду (и параметры) из docker-образа. Подробнее о Docker ENTRYPOINT можно узнать здесь.

--env, -e - устанавливает переменные окружения в формате пар КЛЮЧ=ЗНАЧЕНИЕ. Если у вас есть список переменных окружения в файле, тогда необходимо использовать опцию --env-file.

--ip - назначает docker-контейнеру IP-адрес, например, --ip=10.10.9.75.

--name - назначает docker-контейнеру имя (--name my-super-container).

--publish, -p или --publish-all, -P - сопоставляет порт(ы) docker-контейнера порту(ам) на хост системе. Стоит отметить, что --publish-all откроет доступ к портам, описанным в Dockerfile с помощью директивы EXPOSE.

--rm - автоматически удалить контейнер после завершения его работы (в том числе, при завершении с ошибкой).

--tty, -t - назначает псевдо-TTY, подключенный к STDIN контейнера. Зачастую используется с опцией --interactive, -i - например, если вам нужно подключиться к оболочке (bash) внутри docker-контейнера для выполнения каких-то действий.

--volume, -v - монтирование тома. Подробнее о томах можно почитать здесь.

--workdir, -w - устанавливает рабочую директорию внутри docker-контейнера. Например, если вы скопировали некие файлы в папку app контейнера, то вполне разумно будет установить этот каталог в качестве рабочей директории.