我启动一个容器,启动命令如下:
$ sudo docker run --runtime=nvidia -d --privileged=true -p 8060:8060 -p 8335:8335 -p 8333:8333 -p 8334:8334 -p 8330:8330 -p 81:81 -p 8187:8187 --restart=always cuda10.0-cudnn7-u1804:ltf5 /bin/bash ./bootself.sh
$ sudo docker exec -it 20d3c39053c3 /bin/bash
然后报错:
我使用以下命令查看了启动日志
$ docker logs --tail 50 --follow --timestamps mystifying_nobel #mystifying_nobel是我的容器名称
日志内容为:
发现一直在重复启动shell脚本文件里的写的5个python脚本文件。
解决办法为把shell脚本和5个python脚本里的最后一行exit 0去掉。
我自己的理解是:
exit 0命令的含义是正常运行程序并退出程序;而执行docker run时的进程和执行脚本的进程是一样的,所以,如果执行完脚本exit 0退出,则这个进程就死了,而我的启动命令里有–restart=always,所以就报“Container XXX is restarting, wait until the container is running“的错误
很可能理解地不对,希望有大神看到给分析分析。
Done!