Docker コンテナの実行中に、「そのようなファイルまたはディレクトリはありません」、「アクセス許可が拒否されました」、「接続が拒否されました」などのさまざまなエラー レポートが表示される場合があります。これらのエラー報告により、私たちは混乱し、解決方法がわからなくなることがよくあります。
よくあるエラーの 1 つは、docker run
コマンドを使用してコンテナを実行すると、「docker: デーモンからのエラー応答: OCI ランタイムの作成に失敗しました:container_linux.go」というプロンプトが表示されることです。 :345: コンテナプロセスを開始すると、「exec:」エラーが発生しました。では、このエラーは何を意味し、どのように解決すればよいのでしょうか?
このエラーは、コンテナーの作成時に Docker が指定されたコマンドを実行できないことを意味します。このうち「container_linux.go:345」は、実際にLinuxコンテナでDockerを動作させる際に問題があることを意味します。 「exec: 許可が拒否されました」は、許可が拒否されたため、Docker が指定されたコマンドを実行できないことを意味します。
では、なぜこのようなエラーが発生するのでしょうか?一般に、このエラーには 2 つの原因が考えられます。
まず、許可なくコマンドを実行しようとしていることが考えられます。 Docker コンテナでは、コマンドの実行に必要な権限は非常に制限されています。特別なアクセス許可を必要とするコマンドを実行しようとすると、アクセス許可が拒否される問題が発生します。
2 番目に、間違った Dockerfile またはイメージを使用していることが原因である可能性があります。 Docker では、各コンテナは 1 つ以上のイメージに依存します。使用するイメージまたは Dockerfile に問題がある場合、コンテナーは適切に実行されません。
次に、この問題を解決する方法を見てみましょう。具体的な方法は次のとおりです。
--privileged
パラメーターを追加してみてください。このパラメーターを使用すると、コンテナーがより多くのアクセス許可を取得できるようになり、アクセス許可の拒否の問題が解決される可能性があります。 要約すると、Docker コンテナを使用して実行すると、「docker: デーモンからのエラー応答: OCI ランタイムの作成に失敗しました:container_linux.go:345: コンテナ プロセスの起動により "exec: 権限が発生しました"」というメッセージが表示されます。 「拒否されました」というエラーが表示される場合は、使用するコマンドに権限がないか、使用する Dockerfile またはイメージに問題がある可能性があります。これら 2 つの側面に問題がないことが確実な場合は、 を追加してみてください。 --privileged
問題を解決するためのパラメータ。
以上がdockerがコンテナを実行する際のエラーを解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。