【发布时间】:2021-06-03 23:12:24
【问题描述】:
我从以下 dockerfile 创建了一个名为 ocp-install 的 docker 映像
FROM registry.access.redhat.com/ubi8/ubi-minimal:latest
ARG INSTALL_DIR=/root/install-dir
ENV PATH $PATH:$INSTALL_DIR
WORKDIR $INSTALL_DIR
RUN microdnf update && \
microdnf install -y yum findutils && \
mkdir -p $INSTALL_DIR
COPY ocp-install $INSTALL_DIR
ENTRYPOINT ["/bin/bash", "/usr/bin/ocp-install"]
我已运行命令docker run -it ocp-install create 进行安装。
现在我想使用命令 docker exec -it <containerID> destroy 销毁安装
,但是它给出了以下错误
OCI runtime exec failed: exec failed: container_linux.go:349: starting container process caused "exec: \"destroy\": executable file not found in $PATH": unknown
【问题讨论】:
-
您需要明确卸载任何东西,还是删除容器就足够了? (我通常希望映像包含它需要的所有内容,而不是在启动时进行额外的安装;你能
RUN ocp-install create,省略ENTRYPOINT,并将CMD设置为实际运行安装的程序吗?) -
其实创建镜像的目的是为了安装和卸载。由于图像有
ENTRYPOINT指向一个脚本,它允许两者。我面临的问题是有时在安装完成后,容器进入停止状态并再次启动包含以显式运行destroy命令以某种方式触发create -
它安装在哪里?安装后会发生什么?
-
create 命令安装一个集群,destroy 命令删除它。 workdir中存储了可执行文件,但是在
create期间它不使用现有的可执行文件而是下载本地目录中的可执行文件。
标签: docker dockerfile docker-entrypoint docker-exec