无法在我的容器中 运行 shell

Unable to run shell in my container

我想对我的应用程序进行 docker 化,我想 运行 并进入我的容器,以查看包是否正确安装、文件是否被复制等。

这是我的 Dockerfile:

FROM node:8.6
RUN mkdir /app
WORKDIR /app
COPY .*.json .
COPY src/ .
USER node
RUN yarn global add @angular/cli
EXPOSE 4200

问题是,我无法通过 docker run:

运行 我的容器
docker run my-notes -it --rm ash

我看到错误:

container_linux.go:262: starting container process caused "exec: \"-it\": executable file not found in $PATH"
docker: Error response from daemon: oci runtime error: container_linux.go:262: starting container process caused "exec: \"-it\": executable file not found in $PATH".
ERRO[0000] error waiting for container: context canceled 

我做错了什么?

问题是您需要在图像名称之前而不是之后传递 docker 选项:

docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

我也回答了这个问题。希望对你有帮助。

node 图片带有 shbashdash

如果你想要 ash 你可以安装这个包,但它只是一个到 /bin/dash 的符号链接所以你可以 运行:

docker run -it --rm my-notes dash

要安装 ash 包,请将以下内容添加到您的 Dockerfile

RUN set -uex; \
    apt-get update; \
    apt-get install ash; \
    apt-get 

那么ash/dash可以运行和

docker run -it --rm my-notes ash