我们可以拥有一个没有外壳的 docker 容器吗?

San*_*pan 6 containers linux-kernel docker dockerfile docker-container

我们可以构建一个在该容器中没有任何 shell 的 docker 容器吗?是否可以创建没有外壳的容器?

Adi*_*iii 5

是的,您可以从头开始创建一个容器,它甚至不包含任何 bash,它只包含您在构建期间复制的二进制文件,否则它将是空的。

FROM scratch
COPY hello /
CMD ["/hello"]
Run Code Online (Sandbox Code Playgroud)

您可以使用 Docker 的保留、最小映像、scratch 作为构建容器的起点。使用临时“镜像”向构建过程发出信号,表明您希望 Dockerfile 中的下一个命令成为镜像中的第一个文件系统层。

虽然 Scratch 出现在集线器上的 Docker 存储库中,但您无法拉取、运行它或使用名称 scratch 标记任何映像。相反,您可以在 Dockerfile 中引用它。例如,要使用 scratch 创建一个最小容器:

临时泊坞窗图像

使用它作为基本图像,您可以创建自定义图像,例如您只有节点运行时而不是其他东西,然后您尝试形成scratch-node

FROM node as builder

WORKDIR /app

COPY package.json package-lock.json index.js ./

RUN npm install --prod

FROM astefanutti/scratch-node

COPY --from=builder /app /

ENTRYPOINT ["node", "index.js"]
Run Code Online (Sandbox Code Playgroud)