0

次の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
4

1 に答える 1

1

簡潔な答え:

execは新しいコマンドを実行します。destroy は のサブコマンドなocp-installので、コマンド全体を指定する必要があります。

docker exec -it <containerID> -- /usr/bin/ocp-install destroy

説明

https://docs.docker.com/engine/reference/builder/#entrypointが説明するように、

docker run へのコマンド ライン引数は、EXEC フォーム ENTRYPOINT 内のすべての要素の後に追加されます。

ENTRYPOINT機能しますが、機能しdocker runませんdocker exec

https://docs.docker.com/engine/reference/commandline/exec/のように、

docker exec コマンドは、実行中のコンテナーで新しいコマンドを実行します。

コマンドを実行しようとすると、ドッカーは引数を追加する代わりにdocker exec -it <containerID> destroyコマンドを実行しようとしましたdestroydestroyocp-install

于 2021-03-05T09:44:38.953 に答える