为什么docker容器总是重新启动?

为什么docker容器总是重新启动?,docker,docker-container,Docker,Docker Container,我在后台使用以下命令运行容器: docker run --restart always --name lnmp -v /Users/gedongdong/web:/var/www/ -itd lnmp dockerfile: FROM alpine:edge LABEL author=gedongdong2010@163.com RUN mkdir -p /run/nginx && mkdir -p /shell RUN echo http://mirrors.aliyun

我在后台使用以下命令运行容器:

docker run --restart always --name lnmp -v /Users/gedongdong/web:/var/www/ -itd lnmp
dockerfile:

FROM alpine:edge
LABEL author=gedongdong2010@163.com

RUN mkdir -p /run/nginx && mkdir -p /shell

RUN echo http://mirrors.aliyun.com/alpine/edge/main > /etc/apk/repositories && \
echo http://mirrors.aliyun.com/alpine/edge/community >> /etc/apk/repositories && \
apk update && apk add --no-cache nginx

COPY vhosts.conf /etc/nginx/conf.d/
COPY start.sh /shell
RUN chmod -R 777 /shell


EXPOSE 80 443 6379

CMD ["/shell/start.sh"]
start.sh:

nginx -c /etc/nginx/nginx.conf
tail -f /dev/null
vhosts.conf:

 server {
    listen 80;
    server_name docker.test;
    root /var/www;
    index index.html;
}
当我使用docker ps-a时:

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                          PORTS               NAMES
3a3910c0dc29        lnmp                "/shell/start.sh"   16 minutes ago      Restarting (1) 50 seconds ago                       lnmp
为什么我的容器总是重新启动?

添加
#/bin/sh
到start.sh文件

#!/bin/sh
nginx -c /etc/nginx/nginx.conf
tail -f /dev/null
容器总是重新启动的原因:

正如他在评论中指出的那样,您的设置
--重启总是这样告诉您的。通常,请记住,当容器的
PID 1
停止/崩溃时,容器将退出。例如,您的容器显示如下内容:

(注意问题所在的
PID 1
行)


对我来说,这是因为权限问题。我的机器的密码已更改,在Docker机器中,它没有更新

要在终端中调试,请编写以下代码:

logs <your container's name>

记录日志,因为它崩溃了,您告诉它重新启动:
--总是重新启动
@Henry如果我不添加
--总是重新启动
,容器将直接退出。是的,所以真正的问题是它为什么退出,不是为什么它会重新启动。请检查容器日志以找出原因。@Henry docker日志显示信息:
standard\u init\u linux.go:190:exec用户进程导致“没有这样的文件或目录”
Nice,我添加了一些信息,可能有助于您了解容器的一般情况。。。
logs <your container's name>