🔰

Dockerfileについて【初心者向けの記事】

に公開

Dockerをインストールし、
ネットのサンプルなどを元に
Dockerfileの設定を行い、
ひとまず動く環境はできたものの、
Dockerfileについての理解はできていない、
という方も中にはいることでしょう。(私)

ということで、今回は、
Dockerfileについて、
そもそもどういったものなのか?
など、かみ砕いて説明したいと思います。

Dockerfileとは?

「Dockerイメージを作るための設計図」
であり、

  • どの環境をベースにするか
  • どんなファイルをコピーするか
  • どんなコマンドを実行するか
  • どんな設定を行うか

といったことの手順を書いたテキストファイルです。

Dockerイメージとは?

OSのイメージファイル、と同じような感じ、
と思っていたらそうでもないそうです。

Dockerイメージ

アプリケーションを実行するために
必要な全てのものを含む「パッケージ」

Dockerイメージには
これには以下のものが含まれます。

  • アプリケーションのコード
  • 実行環境(Pythonなどの言語ランタイム)
  • 必要なライブラリやツール
  • 設定ファイル
  • 依存関係
  • OSの必要な部分

OSイメージファイルとの主な違い

1.OSイメージは完全なオペレーティングシステムを含みますが、Dockerイメージはアプリケーションの実行に必要な最小限のOSコンポーネントのみを含みます

2.Dockerイメージは「レイヤー」という概念を持っています

  • 基本となるレイヤー(例:最小限のLinux環境)
  • その上に追加されるレイヤー(Python実行環境、ライブラリなど)
  • アプリケーション固有のレイヤー

3.目的が異なる

  • OSイメージ:完全なコンピュータシステムを起動するためのもの
  • Dockerイメージ:特定のアプリケーションを分離された環境で実行するためのもの

つまり、Dockerイメージは
「アプリケーションとその実行に必要な全ての要素を含む、軽量でポータブルなパッケージ」
と考えるとよいでしょう。

Dockerイメージの種類

Dockerイメージは「Docker Hub」というプラットフォームで提供されており、
「Docker Hub」には2種類の主要なイメージがあります

「Official Images(公式イメージ)」

Docker社自身が管理・保証しているイメージ。
セキュリティ更新や品質管理が定期的に行われおり、
Python, Node.js, MySQLなど、
メジャーな技術のイメージが提供されている。

dockerfileに、

dockerfile
FROM python:3.10.9

と記載すると、

Docker社が提供する公式イメージで
バージョン3.10.9のPython環境が含まれている
イメージをベースとして使用する

という意味合いになる。

コミュニティイメージ

一般のユーザーや企業が作成・公開しているイメージ。
ユーザー名/イメージ名の形式で参照する。

Discussion