Dockerfile WORKDIRはイメージ内にも保存されます

Dockerfile WORKDIRはイメージ内にも保存されます

私はdockerfilesについて学ぶためにオンラインチュートリアルを受講していました。クイズの質問がありました:

Dockerfile WORKDIR コマンドはディレクトリを変更します:

  1. Dockerfileの残りの部分のみ
  2. 完成した画像でも同様です。

私の選択(間違い)は、「1. Dockerfile の残りの部分のみ」でした。

誰か、2 番目の (正しい) 答えが役立つ例を挙げて私を訂正してもらえませんか?

ドキュメント内のWORKDIR

答え1

特定のディレクトリからコードを実行する必要があるケースは数多くあります。実行中のアプリケーションが現在のディレクトリ内のファイルを操作する、アプリケーションが現在のディレクトリ内の構成を期待する、アプリケーションが現在のディレクトリ内に配置されているなどの理由が考えられます。WORKDIRイメージ作成者がこれを設定できるため、コンテナを実行するユーザーは心配する必要がありません。

たとえば、私が以前経験したユースケースの 1 つは、現在のディレクトリ内のファイルを操作するアプリケーションを使用して Docker コンテナを作成することです。設定しないと、ボリュームを場所にバインドしてから、すべてのコマンドWORKDIRを実行する必要があります。cd /location

docker -v $PWD:/location someimage "cd /location; somecommand"

WORKDIRを設定すると、/location以下を削除できますcd:

docker -v $PWD:/location someimage somecommand

それははるかに便利です。

関連情報