Докер-контейнер будет остановлен, как только его корневой процесс завершится.
Вы определяете корневой процесс с помощью
CMD /cloud/cloud-resource
Внутри док-контейнера он будет выполнен и каккак только выполнение завершится, контейнер будет остановлен.Поскольку последняя команда cloud-resource
- это nohup
с &
в конце, вы перемещаете команду в фоновый режим.И после этой команды сценарий завершается, как и корневой процесс контейнера.
Тот факт, что
docker run -d -it -e SERVER_ADDR=127.0.0.1 --name resource1 agent:1.0 --entrypoint /bin/bash
продолжает работать, состоит в том, что вы перезаписываете корневой процесс с помощью entrypoint /bin/bash
.-i
дополнительно сообщает докеру, чтобы STDIN оставался открытым, даже если он не подключен.Таким образом, ваш bash активен - даже если он отключен.
Попробуйте изменить скрипт, чтобы не использовать nohup
и &