Укажите образ и нужные привязки, затем проверьте команду для оболочки POSIX.
docker run
Параметры операции
Порты
Монтирования
Переменные окружения
Предпросмотр команды
docker run \
--detach \
'nginx:alpine'
Вывод для POSIX sh в macOS, Linux или WSL. Пути передаются буквально; переменные и ~ не раскрываются.
Настройки обрабатываются в этом браузере. Нет подключения к Docker, запросов к реестру и выполнения команд.
Параметры
До 20 строк в группе. CPU: 0.001–1024. Память: целое b/k/m/g, минимум 6 МиБ; пусто — не задано.
Предпросмотр актуален.
При сборке команды из нескольких примеров легко перепутать путь хоста с каталогом контейнера или оставить ненужный порт. Форма docker run разделяет эти параметры, чтобы каждое решение можно было проверить до переноса команды в терминал.
Исходная настройка — nginx:alpine в фоновом режиме, без публикации портов и ограничений ресурсов. Пустые параметры пропускаются. Используются точка входа и команда самого образа: инструмент не придумывает пароли, каталоги и требования приложения.
Зачем собирать docker run по отдельным полям
Сначала параметры, затем кавычки
В docker run порты хоста и контейнера, источники монтирования и значения переменных становятся отдельными аргументами. Пробелы и апострофы в путях сохраняются благодаря экранированию. При любом изменении старый результат сразу теряет актуальность и его нельзя экспортировать.
Проверка доступа перед копированием
Привилегированный режим, чувствительные пути и публикация вне loopback отмечаются предупреждениями. Значения ENV изначально скрыты и в полях, и в команде. Полный экспорт становится доступен после явного включения показа значений. Маска влияет на отображение, а не шифрует данные.
Три решения перед запуском
01
Выберите адрес хоста
Новая строка порта использует 127.0.0.1 и TCP. Пустой адрес означает все интерфейсы, а не автоматический выбор закрытой сети. Внутренний порт должен совпадать с портом службы в образе; изменение внешнего номера не перенастраивает приложение.
02
Отличайте путь от именованного тома
Для абсолютного пути на хосте Docker выберите bind, для хранилища под управлением Docker — volume. Новое монтирование доступно только для чтения. Если приложению нужна запись, отключите этот режим осознанно и проверьте источник и назначение.
03
Объединяйте правки в ручном режиме
Автоматическое обновление ждёт 350 мс после последней правки. Его можно отключить и запускать сборку кнопкой или Ctrl/Cmd+Enter. Пример, очистка и удаление строки сначала показывают предварительный просмотр. Однократная отмена восстанавливает поля и результат.
Что задают аргументы
Явная публикация портов
Каждая строка создаёт --publish с IPv4, портом хоста, портом контейнера и TCP либо UDP. Перекрывающиеся привязки одного порта и протокола отклоняются. TCP и UDP могут использовать одинаковый номер. Занятость порта другими процессами хоста форма не проверяет.
Два вида хранения
Bind-монтирование связывает файл или каталог хоста с контейнером, а именованный том управляется Docker. --mount явно задаёт тип и при необходимости readonly. Одинаковые нормализованные пути назначения запрещены, чтобы одна строка не скрывала другую привязку.
Переменные окружения без подстановок
Пробелы, знаки равенства, апострофы и доллары сохраняются внутри одного аргумента. Пустое значение выводится как KEY=. Повтор имени вызывает ошибку. Инструмент не читает окружение хоста и не раскрывает $HOME или конструкции подстановки команд.
Жизненный цикл и ресурсы
Настраиваются имя, фоновый режим, интерактивный терминал, удаление при выходе, перезапуск, CPU и память. --rm несовместим с политикой перезапуска, отличной от no. Пустые лимиты не добавляют аргументов, а заданное значение не означает резервирование ресурсов.
Поддерживаемые формы и ограничения
Одна команда для POSIX
Вывод рассчитан на POSIX sh в Linux, macOS или WSL и пути контейнеров Linux. Не поддерживаются PowerShell, CMD, импорт старых команд, Compose, Dockerfile, произвольные флаги и замена команды запуска. Обращений к Docker и реестру образов нет.
Ограниченная запись образов и портов
Принимается путь репозитория в нижнем регистре, необязательный DNS- или IPv4-реестр с портом, тег и digest sha256. IPv6-реестры, отдельные ID образов и другие алгоритмы исключены. Порты — целые числа от 1 до 65535, без диапазонов, случайного назначения, IPv6-привязки и SCTP.
Однозначные пути монтирования
Источник bind должен быть абсолютным; назначение тоже, но не корнем. Запятые, двойные кавычки, обратные косые черты, управляющие символы и сегменты . или .. запрещены. Пробелы и апострофы сохраняются. Имя тома — 2–255 букв, цифр, точек, подчёркиваний или дефисов, с буквой либо цифрой в начале.
Пределы размера и чисел
В каждой группе максимум 20 строк. Одно текстовое поле ограничено 4096 единицами UTF-16, сумма — 65536. CPU допускает 0.001–1024 и до трёх десятичных знаков. Память задаётся целым числом с необязательным b/k/m/g, минимум 6 МиБ, максимум — знаковое 64-битное число байтов. Превышение вызывает ошибку, а не обрезку.
Маска не заменяет хранилище секретов
Пока значения ENV скрыты, копирование и скачивание содержащего их результата недоступны. После показа экспорт включает настоящие значения; они могут попасть в историю оболочки или быть видны при инспекции контейнера. Имена переменных и пути автоматически секретами не считаются.
Предупреждения не проверяют хост
Отмечаются корневые, системные и пользовательские каталоги, но символические ссылки не разрешаются. Даже Docker socket только для чтения требует проверки. Существование файлов, права, содержимое образа и поддержку лимитов ядром нужно выяснять на реальной машине.
Вопросы о docker run
Как передать переменные окружения в контейнер Docker?
Добавьте имя и значение в строку ENV: она станет отдельным аргументом --env при запуске контейнера. Это настройка времени запуска, а не изменение Dockerfile или этапа сборки. Чтение файла .env не поддерживается. Чтобы скопировать результат с переменными, сначала разрешите показ значений.
Почему Tomcat в Docker не работает после смены порта?
Различайте порт на хосте и порт, который слушает Tomcat внутри контейнера. Если приложение слушает 8080, изменение внешнего порта не меняет этот внутренний номер. Укажите его в поле порта контейнера, выберите свободный порт хоста и проверьте адрес прослушивания приложения и сетевые правила.
Как передать Docker переменную окружения с пробелами?
Введите значение без дополнительных кавычек оболочки. Весь аргумент KEY=value будет заключён в кавычки, поэтому пробелы и равенства сохранятся. $HOME останется буквальным текстом. Переводы строк и управляющие символы отклоняются.
Можно ли задать --rm и --restart в Dockerfile?
Это параметры запуска контейнера, а не инструкции Dockerfile. Для перезапуска службы отключите удаление при выходе. Для временного контейнера с --rm оставьте политику no. Несовместимая комбинация блокирует генерацию, а не исправляется незаметно.
Чем тома Docker отличаются от bind mounts?
Именованный том управляется Docker, а bind указывает на конкретный путь хоста. При разрешённой записи контейнер может менять файлы хоста. Для --mount отсутствующий bind-источник обычно означает ошибку запуска; эта страница не может проверить наличие каталога.
Предпросмотр отличается от документации Docker?
Другие инструменты для контейнеров
Другие инструменты для настройки контейнеров и разработки.