Невозможно запустить последнюю версию 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