首页 > 解决方案 > Docker 容器无法启动

问题描述

情景:

具有以下 Dockerfile 的自定义映像

FROM node:10
WORKDIR /usr/src/app
ENTRYPOINT ["docker-entrypoint.sh"]
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 7070
CMD [ "npm", "start"]

我只需键入 docker build 即可构建图像。(来自项目的文件夹)。但是......总是存在一个但是:-(当我执行时:

docker run -d --restart=always <imageid>

容器创建得很好,但是....

CONTAINER ID        IMAGE               COMMAND                  
CREATED             STATUS                          PORTS               
NAMES
4314ffc2afcb        a68faf70e589        "docker-entrypoint.s…"   20 
minutes ago      Restarting (0) 44 seconds ago                       
magical_hopper

抱歉,缩进不好,总而言之,我不知道为什么?容器未启动。

我认为问题出在 Dockerfile 上。

PD:我知道这个问题可以重复,但我不明白解决方案(我是使用 docker 的新手,对不起)。

有谁能够帮我?

提前感谢大家。

标签: docker

解决方案


好的 - 问题是 withentrypoint并且cmd两者都已定义。
最后,它的等效命令是docker-entrypoint.sh npm start.

npmstart作为参数传递给docker-entrypoint.sh脚本。
它不会启动 npm,因此它会立即从容器中出来。

首先尝试从 Dockerfile 中删除 ENTRYPOINT

使用 docker-entrypoint.shnpm start在最后包含命令。


推荐阅读