Контейнер стартует и тут же закрывается.
Потому, что по умолчанию там выполняется команда
/bin/bash
, которая без терминала тут же заканчивает исполнение.
Контейнер вы запускаете в режиме демона (ключ
-d
)
Будь там не
bash
а какая-то долгоиграющая команда, mysqld или nginx, всё бы работало дольше.
Наверное, вам нужно запустить контейнер и «оказаться» в его шелле:
docker run -it --rm ubuntu
-i
интерактивный режим
-t
подключает виртуальный терминал
--rm
удалит контейнер сразу, как вы из него выйдете
Вот два варианта запустить Ubuntu, чтобы контейнер остался висеть:
docker run -d ubuntu tail -f /dev/null
– тут команда-пустышка, которая будет выполняться бесконечно;
docker run -t -d ubuntu
– тут подключён виртуальный терминал и bash не вылетит, а останется работать.