我在运行docker command时有疑问,docker容器已启动,但其显示在图像下方的Command列上。我认为它必须显示在命令列中,例如“ node /app/server.js”
docker container run -e TZ=Asia/Karachi -d -p 9135:9135 myapi:2.4
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
容器的主要过程是entrypoint
+ command
。
所以,您得到的是过程的第一部分(即入口点)。
您的期望是正确的,但原因是官方映像具有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"
示例