&引用;docker run“;退出bash shell脚本后死亡

&引用;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 \

我正在尝试制作系统管理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 \
    -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