Невозможно запустить последнюю версию redhat/ubi8 с помощью команды запуска docker
Я пытаюсь запустить redhat/ubi8.
docker pull redhat/ubi8
docker run redhat/ubi8
Команда возвращается без вывода.
The docker container listкоманда выводит список контейнера:
71b0897317aa redhat/ubi8:latest "/bin/bash" 21 минуту назад Вышел (0) 21 минуту назад удивительный_volhard
Пытаюсь получить журнал с помощьюdocker logs amazing_volhardне дает вывода.
Некоторые дополнительные факты диагностики:
- Самое странное, что я могу успешно запустить этот самый образ с помощью Docker Desktop, просто нажав «Выполнить». Запущенный контейнер вроде бы работает, однако в журнал также выводит нулевую строку .
- Я также могу успешно запускать другие образы Linux через командную строку, например cassandra:latest или
docker run -d -p 80:80 docker/getting-startedвсе успешно пишет в лог
Вопрос
Хотя я понимаю, что redhat/ubi8 — это базовый образ, целью которого является создание на его основе моих собственных образов, все же хотелось бы понять, почему я не могу запустить его с помощьюdocker runв то время как я могу запустить его через графический интерфейс Docker Desktop, а также мне хотелось бы понять, почему журнал пуст как для успешно запущенного контейнера, так и для неудачно запущенного контейнера.
1 ответ
Как и многие базовые образы, по умолчанию запускает оболочку (в данном случае, но это не имеет особого значения).
Если ты бежишьbashи стандартный ввод закрыт, он немедленно завершает работу. Вы можете увидеть то же самое поведение, если запустите что-то вроде:
bash < /dev/null
Потому что ты выполняешьdocker runбез указания, здесь происходит именно это:
- Ты бежишь
docker run redhat/ubi8 - The
redhat/ubi8изображение работает -
/bin/bashвидит, что стандартный ввод закрыт, поэтому завершает работу
Если вы хотите увидеть другое поведение, либо добавьте-iи-tв вашу командную строку:
docker run -it redhat/ubi8
Или запустите что-то кроме оболочки:
docker run redhat/ubi8 sleep inf