我正在尝试使用系统管理员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
没有Docker在运行。
我做错了什么?
答案 0 :(得分:1)
尝试在没有--rm的情况下运行它。
您可以看到所有容器(包括使用此命令已经死亡的容器):
> docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS
743a6eaa33f4 nginx "nginx -g 'daemon of…" 1 second ago Exited (??) ??
^^^^^
您应该能够查看容器的退出代码是什么。使用容器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