'docker exec' может использоваться только на работающем контейнере, но что означает запуск контейнера?Значит ли это, что контейнер должен что-то вычислять?или это проблема [команды], которую я определяю для контейнера?Почему мой контейнер TensorFlow всегда находится в состоянии остановки?
После того, как я использовал 'docker run', чтобы построить контейнер тензорного потока, контейнер автоматически остановился.Мне нужно перезапустить его и затем выполнить команду на нем.Почему контейнер не всегда работает, так как я его строю?
docker run -it --runtime=nvidia tensorflow/tensorflow:latest-gpu-py3
Затем появится всплывающее окно, которое я могу использовать для управления контейнером.Но после того, как я выхожу, контейнер остановился сам.Это означает, что я могу использовать только docker ps -a
, чтобы увидеть свой контейнер, но docker ps
не могу.Я должен перезапустить контейнер, если я хочу использовать свой контейнер снова.
UPDATE1: Если я хочу создать контейнер, такой как VM, я не могу использовать docker run
с временным [command]
как python ..
.Контейнер потеряет контроль над командой после завершения команды.docker restart
не может запустить контейнер снова.Следовательно, docker exec
не может применяться к нему. Вместо , используя bash
или ничего, поскольку [command]
может создать контейнер, который может быть перезапущен, поэтому может применяться с docker exec
.
UPDATE2: docker run -d -it
может создать работающий контейнер (но оболочка bash не всплывает, даже с bash
).Непосредственное использование docker exec -it container_name bash
может снова взять под контроль работающий контейнер, без docker restart
.В это время выход из оболочки bash не остановит контейнер.