type
status
date
slug
summary
tags
category
icon
password

カスタムコンテナイメージの作成:Dockerfileを使用した方法

目標

このセクションを完了すると、学生は一般的なDockerfileコマンドを使用してコンテナイメージを作成できるようになります。

概要

Dockerfileを使用してカスタムコンテナイメージを作成するプロセスを以下の手順で解説します。これにより、自分専用のアプリケーションやサービスをコンテナ化できるようになります。

ベースコンテナ

Dockerfileは、コンテナイメージを自動的にビルドするためにDockerが提供する仕組みです。Dockerfileからイメージをビルドするプロセスは、次の3つのステップで構成されます:
  1. 作業ディレクトリを作成する。
  1. Dockerfile仕様を書き込む。
  1. dockerコマンドを使ってイメージをビルドする。

1. 作業ディレクトリの準備

  1. 新しい作業ディレクトリを作成
    1. Dockerfileを作成
      1. 作業ディレクトリ内に、Dockerfileという名前のファイルを作成します。

    2. Dockerfileの基本構文

    Dockerfileは、次のフォーマットで命令を記述します:
    • コメント: # で始まる行(インラインコメントはサポートされない)
    • 命令(INSTRUCTION): 大文字で記述するのが一般的
    Dockerfile内の命令は、記述された順に実行され、最初の命令は必ずFROMで始まります。

    3. 基本的な命令の解説

    ① FROM

    ベースイメージを指定します。

    ② LABEL

    イメージにメタデータを追加します。

    ③ RUN

    コマンドを実行して新しいレイヤーを作成します。

    ④ EXPOSE

    コンテナが使用するポートを指定します。

    ⑤ ENV

    環境変数を設定します。

    ⑥ ADD / COPY

    ファイルをコピーします(ADDはリモートURLや圧縮ファイルの解凍も可能)。

    ⑦ USER

    コンテナ内で使用するユーザーを設定します。

    ⑧ ENTRYPOINT / CMD

    コンテナ起動時のデフォルトコマンドを指定します。
    ENTRYPOINTCMD はコンテナの実行コマンドを設定するものです。
    • ENTRYPOINT: 必ず実行するメインコマンドを設定する。
      • 例: ENTRYPOINT ["command", "arg1"]
    • CMD: ENTRYPOINT に渡すデフォルトの引数を設定する。
      • 例: CMD ["arg2"]

    動作例

    1. Dockerfile:
      1. コンテナ起動時の実行結果:
          • デフォルトでは: command arg1 arg2
          • 実行時に引数を指定: command arg1 <指定した引数> (例: docker run my_image arg3command arg1 arg3

      ポイント

      • ENTRYPOINT: 固定部分
      • CMD: デフォルトの可変部分
      • 実行時に引数を指定すると CMD が上書きされる。

      4. 実例: Apache WebサーバーのDockerfile

      以下は、Apacheを実行するカスタムコンテナの例です:

      5. ENTRYPOINTとCMDの使い方

      ENTRYPOINTCMDは以下の形式で記述できます:
       
      1. JSON形式(推奨)
        1. シェル形式

          使い分けの例

          現在時刻を表示するコンテナの場合:
          • 起動時、現在時刻が表示されます。
          • 別の引数を渡すことでCMDを上書き可能です。

          6. レイヤーを効率化する方法

          非効率な例

          複数のRUN命令を記述すると、それぞれが新しいレイヤーを作成します:

          効率的な例

          1つのRUN命令にまとめることで、レイヤー数を削減できます:

          7. イメージのビルド

          1. イメージをビルド
            1. 作業ディレクトリ内で次のコマンドを実行します:
          1. ビルド結果を確認
            1. ビルドが成功すると、新しいイメージがリストに表示されます:

           
          18- 第5章:カスタムコンテナイメージの作成-1:ラボ220- 第5章:カスタムコンテナイメージの作成-3:カスタムコンテナイメージの作成の演習
          Loading...
          minami
          minami
          一个普通的干饭人🍚
          Announcement

          🎉 ブログへようこそ 🎉

          notion image
          名前:みなみ独立事務所
          性別:男
          国籍:China
          完全独学だけで基本情報をはじめ31個の資格を仕事をしながら合格。 現在はIT会社の技術担当や、ブログの執筆や学習支援などを手掛けています。 独学で合格できる学習法、勉強法、試験対策を配信します!

          📚 主な内容

          💻 IT・システム開発
          🏠 不動産 × 宅建士
          🎓 MBA 学習記録

          🔍 コンテンツの探し方

          現在、サイトのデザインはシンプルなため、情報がやや探しにくいかもしれません。
          気になるテーマを探す際は、タグ検索の利用をおすすめします。