Как запустить временный контейнер через stdin без -v

Практические лайфхаки для разработчиков, DevOps и админов: Docker, Linux, Bash, Python, Golang, Ansible, логи и безопасность — только рабочие решения. Даем готовые команды, конфиги и приёмы диагностики, которые экономят часы и дни. Если нужно быстро настроить, отладить и обезопасить инфраструктуру — вы по адресу.

dockerstdinконтейнер

ℹ️ Допустим, тебе нужно быстро проверить какой-то скрипт или бинарник в чистой среде, но монтировать файлы через -v лениво. Можно сделать проще:

  1. 📂 1. Передаём файл в контейнер через stdin:

    cat myscript.py | docker run -i --rm python:3.11 python

ℹ️ Как это работает?

  • cat myscript.py - читает файл

  • docker run -i - принимает ввод из stdin

  • ‣ Python - внутри контейнера выполняет переданный код

  1. 🖥 2. То же самое, но для бинарников

    Допустим, у тебя есть исполняемый файл mytool на Go, и ты хочешь запустить его в alpine без монтирования:

    cat mytool | docker run -i --rm alpine sh -c "cat > /tmp/mytool && chmod +x /tmp/mytool && /tmp/mytool"

Что тут происходит?

  • cat mytool - передаёт бинарник в контейнер

  • ‣ В контейнере он записывается в /tmp/mytool

  • ‣ Делаем его исполняемым chmod +x

  • ‣ Запускаем

✳️ Теперь можно быстро запускать файлы в контейнерах без возни с томами!

tags: #разработка #файлы #docker

🧭 @recura_tech

Иллюстрация: стилизованный экран с кодом и контейнерным блоком, символизирующая запуск приложений в Docker и работу с контейнерами для разработки
Иллюстрация контейнеризации и кода, символизирующая запуск приложений в Docker

Читайте так же