&引用;docker run“;退出bash shell脚本后死亡
我正在尝试制作系统管理bash工具来启动Docker映像 但是这样的&引用;docker run“;退出bash shell脚本后死亡,bash,docker,Bash,Docker,我正在尝试制作系统管理bash工具来启动Docker映像 但是这样的docker run在其bash脚本退出后一直在我身上消亡 所讨论的实际工作bash脚本是: #!/bin/sh docker run \ --name publicnginx1 \ -v /var/www:/usr/share/nginx/html:ro \ -v /var/nginx/conf:/etc/nginx:ro \ --rm \ -p 80 \ -p 443 \
docker run
在其bash脚本退出后一直在我身上消亡
所讨论的实际工作bash脚本是:
#!/bin/sh
docker run \
--name publicnginx1 \
-v /var/www:/usr/share/nginx/html:ro \
-v /var/nginx/conf:/etc/nginx:ro \
--rm \
-p 80 \
-p 443 \
-d \
nginx
docker ps
执行简单脚本会导致:
# ./docker-run-nginx.sh
743a6eaa33f435e3e0d211c4047bc9af4d4667dc31cd249e481850f40f848c83
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
743a6eaa33f4 nginx "nginx -g 'daemon of…" 1 second ago Up Less than a second 0.0.0.0:32778->80/tcp, 0.0.0.0:32777->443/tcp publicnginx1
在bash脚本完成后,我执行了“docker ps”
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
没有码头工人在运行
我做错了什么?尝试在没有--rm的情况下运行它
您可以看到所有容器(包括使用此命令已经死亡的容器):
您应该能够查看容器的出口代码。使用容器id,您还可以查看其日志以更好地了解发生了什么:
docker logs 743a6eaa33f4
如果仍然无法理解,可以使用tty启动容器来运行bash,并尝试在其中运行命令
docker run -it -v /var/www:/usr/share/nginx/html:ro -v /var/nginx/conf:/etc/nginx:ro --rm -p 80 -p 443 nginx bash
你能运行docker日志查看死亡容器中发生了什么吗?奇怪。。。几天前它起作用了。我必须删除“--rm”选项,这样我才能在死后查看日志docker logs publicnginx1 2018/07/29 01:50:53[emerg]1#1:open()“/etc/nginx/nginx.conf”失败(2:没有这样的文件或目录)nginx:[emerg]open()“/etc/nginx/nginx.conf”失败(2:没有这样的文件或目录)我要将其标记为关闭。这一点很重要。删除
--rm
选项后,这样的容器可能会开始出现在码头工人日志
和码头工人ps-a
中。我现在可以看到公共nginx Docker映像出了什么问题(它缺少一个配置文件)。
docker run -it -v /var/www:/usr/share/nginx/html:ro -v /var/nginx/conf:/etc/nginx:ro --rm -p 80 -p 443 nginx bash