我有一个容器,其中包含一个用CMD npm start
启动的Node.js脚本。该脚本将运行,执行一些工作并退出。 node
进程退出,因为没有任何工作挂起。 npm start
成功退出。然后容器停止。
我通过docker start xxxx
从cronjob在Synology NAS上运行此容器。完成后,我从其警报系统收到警报Docker容器xxxx意外停止。 docker container ls -a
的状态显示为Exited (0) 5 hours ago
。如果监视docker events
,则会看到事件die
和exitCode=0
[似乎我需要通过产生stop
事件而不是die
事件来向系统发送信号,表明期望退出。这是我可以在图像中还是在docker start
命令行上执行的操作?
我不熟悉Synology,所以我不确定哪个组件正在引发您提到的“警报”,但是我想这只是一个警告,而不是错误,因为:]]
docker events
,然后docker run --rm -it debian bash -c "echo Hello"
会产生相同的事件(而“ kill”事件则更可疑)。所以也许您只是因为Synology假定容器应该运行很长时间才收到这样的警告?
无论如何,以下是与您的问题有关的几点评论:
docker start container_name
,而不是执行docker run --rm -i --name=container_name image_name …
。 (在这种情况下,由于--rm
,docker stop container_name
将自动触发容器的移除。)