scent-yのブログ

学んだことや感じたことの備忘録

Docker イメージに関して復習

以下、備忘録。

  • Dockerイメージは複数のレイヤーから構成されている。レイヤーとは、イメージ内の変更や操作を表現するためのスナップショット。Dockerイメージ構築の際、ファイルの追加やコマンドの実行といった操作は新しいレイヤーとして保存される。各レイヤーは個別にキャッシュされるため、同じ操作を行う場合はキャッシュから再利用される。結果、重複する操作が最小限に抑えられ、ビルドの高速化につながる。
  • docker history コマンドでイメージの履歴情報を確認可能。各レイヤーが作成された際に実行されたコマンドを確認可能。
  • DockerのRUNコマンドはベースイメージに対して操作を行う。RUNコマンドは新しいレイヤーを作成し、そのレイヤー上でコマンドを実行する。ベースイメージは変更されず、新しいレイヤーに変更内容が追加される。
  • RUNコマンドではShell形式での記述とExec形式での記述が可能だが、Exec形式を利用するとシェルを介さずに実行できるので余分なプロセスを発生させずに済む。
# Dockerfile

# Shell形式
RUN echo hello
# Exec形式
RUN ["echo","hello"]
  • RUNはイメージを作成するために実行するコマンド。イメージから生成したコンテナでコマンドを実行するには、CMDを利用する。

参考

プログラマのためのDocker教科書 インフラの基礎知識&コードによる環境構築の自動化 電子書籍(WINGSプロジェクト 阿佐 志保 山田 祥寛)|翔泳社の本