Docker は、プログラマがアプリケーションと依存関係を小さなコンテナにパッケージ化し、アプリケーションを簡単にデプロイして実行できるようにするため、コンテナ化されたアプリケーションの標準となっています。 Docker コンテナは、アプリケーションとホスト マシンの間の環境を分離するように設計されているため、Docker コンテナの外でスクリプトを実行する方法について混乱する人もいるかもしれません。この記事では、Docker コンテナーの外部でスクリプトを実行するのに役立ついくつかの方法を紹介します。
方法 1: docker exec コマンドを使用する
まず、Docker コンテナーの ID または名前を知っておく必要があります。次のコマンドを使用して、実行中のすべての Docker コンテナを一覧表示できます:
docker ps
次に、次のコマンドを使用して Docker コンテナ内でスクリプトを実行できます:
docker exec container_name /path/to/script.sh
ここで、container_name は目的の Docker です。実行するコンテナの名前または ID、/path/to/script.sh は、実行するスクリプトのパスと名前です。
この方法の利点は、非常にシンプルで実行が簡単で、スクリプトの実行に必要なコマンドは 1 つだけであることです。ただし、これは実行中の Docker コンテナーでのみ機能します。停止した Docker コンテナーでスクリプトを実行する場合は、コンテナーを再起動する必要があります。
方法 2: docker cp コマンドを使用する
もう 1 つの方法は、docker cp コマンドを使用してスクリプト ファイルを Docker コンテナーにコピーし、コンテナー内で実行することです。この方法の利点は、停止した Docker コンテナ上で動作することです。
docker cp /path/to/script.sh container_name:/path/to/destination docker exec container_name /path/to/destination/script.sh
このうち、container_name は使用する Docker コンテナの名前または ID、/path/to/script.sh はコピーするスクリプトのパスと名前、/path/to /destination は、スクリプトのコピー先となる Docker コンテナ内のターゲット パスです。
方法 3: スクリプトを Dockerfile に追加する
最後に、スクリプトを Dockerfile に追加できます。このアプローチの利点は、新しい Docker イメージを構築するときに、すべてのスクリプトと依存関係がすでに存在するため、コンテナーを実行するたびにそれらを追加する必要がないことです。このアプローチの欠点は、Dockerfile の作成と保守により多くの時間と労力が必要になることです。
次のコマンドを Dockerfile に追加します:
COPY /path/to/script.sh /script.sh RUN chmod +x /script.sh
これにより、スクリプトがローカル マシンから Docker コンテナ内のルート ディレクトリにコピーされ、そのアクセス許可が実行可能に設定されます。 Docker コンテナでは、次のコマンドを使用して実行できます。
./script.sh
この例では、スクリプトを実行するには、Docker コンテナの作業ディレクトリで ./ を使用する必要があります。作業ディレクトリを指定することもできます。
Dockerfile へのスクリプトの追加には時間がかかる場合があり、依存関係を慎重に処理する必要があることに注意してください。そうしないと、バージョンの非互換性が発生したり、コンテナー内の依存関係が欠落したりする可能性があります。
結論
Docker コンテナの外部でスクリプトを実行するには、ニーズと環境に応じてさまざまな方法がある場合があります。 docker exec コマンドを使用して実行中のコンテナーでスクリプトを実行し、 docker cp コマンドを使用して停止したコンテナーでスクリプトを実行し、Dockerfile を使用してスクリプトを追加すると、より多くの時間と労力が必要になる可能性がありますが、コンテナーの完全性と移植性を高めることができます。ニーズに応じて、最適な方法を選択し、環境の安定性と信頼性を維持できます。
以上がDocker外部でスクリプトを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。