👁 Когда пишешь скрипты или настраиваешь окружение, часто нужно запустить контейнер, но только если он ещё не запущен. Конечно, можно городить docker ps | grep, проверять статус и писать дополнительные проверки.
📝 Есть аккуратное решение одной строкой:
docker start my-container 2>/dev/null || docker run -d --name my-container my-image
📝 Для переиспользования можно оформить в функцию:
run_once() {
docker start "$1" 2>/dev/null || docker run -d --name "$1" "$2"
}
run_once redis redis:7-alpine📌 Что происходит:
docker startпопытается запустить контейнер по имени- Если он не существует — команда упадёт
- Тогда сработает
docker run, который создаст и запустит контейнер - Повторный запуск ничего не сломает:
startпросто вернёт успех
🔎 Такой приём особенно удобен в Bash-скриптах и CI/CD пайплайнах — можно быть уверенным, что контейнер поднимется, но не будет дубликатов. Всё в одной строке, без условий и проверок.
❗️ Подходит для автоматизации запуска сервисов в dev-окружении, удобен в скриптах и при повторном деплое в тестовых кластерах. Работает в Linux и macOS, требует только установленный Docker.
tags: #полезно #docker
❤️ @recura_tech



