docker容器显示入口点

问题描述 投票:0回答:2

我在运行docker command时有疑问,docker容器已启动,但其显示在图像下方的Command列上。我认为它必须显示在命令列中,例如“ node /app/server.js”

docker container run -e TZ=Asia/Karachi -d -p 9135:9135 myapi:2.4

enter image description here

FROM node:10.16.0

WORKDIR /app

COPY package.json /app

ENV NODE_ENV=production

RUN npm install

COPY . /app

VOLUME ["/app/logs"]

CMD ["node", "/app/server.js"]

EXPOSE 9135
docker dockerfile
2个回答
0
投票

容器的主要过程是entrypoint + command

所以,您得到的是过程的第一部分(即入口点)。


0
投票

您的期望是正确的,但原因是官方映像具有entrypoint,并且您在Dockerfile中覆盖的CMD只是入口点的参数,即CMD ["node", "/app/server.js"]

因此,如果将Dockerfile更改为

FROM node:alpine
WORKDIR /app
COPY . /app
entrypoint ["node", "/app/app.js"]

然后运行docker ps

CMD将是"node /app/app.js"

示例

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.