あるマシンで作成したイメージをコピーし、そのイメージを別のマシンにコピーしました。(docker イメージは docker save -o [images.tar] コマンドを使用して保存されます)
次に、別のマシンで docker loader コマンドを使用します。これらのイメージを実行するには、ソース コード、Dockerfile、docker-compose.yml ファイルをイメージと一緒に渡す必要がありますか?
答え1
Dockerfile は、イメージを作成するために使用される指示です。イメージが作成されると、他のユーザーは Dockerfile なしでそのイメージを実行できます。
イメージ自体には、バイナリ、ライブラリ、スクリプト (JavaScript などの解釈型言語の場合はソース コード) など、アプリケーションを実行するためのすべてのコンポーネントが含まれている必要があります。
docker-compose.yml は、イメージの実行方法の設定です。これには、ポートを公開する場所やボリュームをマウントする方法など、イメージ自体には含まれない設定が含まれます。
したがって、イメージをコピーした場合、それを実行するために必要なのは docker-compose.yml だけです。
保存/読み込みによる画像の転送はお勧めしません。すでに転送された同じレイヤーが再度転送されることになります。代わりに、レジストリサーバーを使用することで、切断された環境でも独自のレジストリを実行するこれにより、どのレイヤーが新しいかが追跡され、画像が使用するディスク領域が削減されるだけでなく、転送が高速化されます。