0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dockerfileについて

Last updated at Posted at 2024-10-23

Dockerfileとは

 Dockerfileは、コンテナの設計図です。アプリケーションやパッケージの動作環境を定義し、その環境をもとにDockerイメージを作成するために使います

Dockerfileの作成

このDockerfileでは、Ubuntu 20.04をベースにして、curlをインストールし、ローカルのファイルをコンテナ内にコピーした後、bashシェルをデフォルトで実行する設定をしています。

FROM ubuntu:20.04

RUN apt update
RUN apt install -y curl 

COPY . /app/

CMD ["bash"]

FROM

どのベースイメージを使用するか指定します。この場合は、Ubuntu 20.04の公式イメージが使われます。
Dockerイメージはレイヤー構造になっているため、ベースイメージの上に他の命令を積み重ねることで環境をカスタマイズします。

RUN

シェルコマンドを実行するための命令です。例えば、apt updateコマンドでパッケージリストを更新し、apt install -y curlでcurlというツールをインストールしています。

apt ubuntu: パッケージリストを最新の状態に更新します。
apt install -y curl: curlというパッケージをインストールします。
-y: 対話なしで「Yes」を自動的に選択してインストールを進めるオプションです。

&&:コマンドをまとめて書くことができます。例えば、以下のようにしてレイヤーを減らし、イメージサイズを小さくすることが推奨されます。

RUN apt update && apt install -y curl

COPY

ローカル環境にあるファイルやディレクトリを、Dockerイメージ内の指定した場所にコピーします。この例では、カレントディレクトリ(.)の内容をコンテナ内の/app/ディレクトリにコピーしています。

COPY 追加元 追加先

CMD

コンテナが起動したときに実行されるデフォルトのコマンドを指定します。ここではbash(シェル)が実行されるように設定しています。

CMD ["実行ファイル", "パラメータ1", "パラメータ2"]

補足: ENTRYPOINTとCMDの違い
• CMDは、デフォルトで実行されるコマンドを指定するだけで、コンテナ実行時に上書きが可能です。
• ENTRYPOINTは、強制的に実行されるコマンドで、上書きができません。

まとめ

FROM: ベースとなるDockerイメージを指定。
RUN: シェルコマンドを実行。複数のコマンドを&&でつなげてイメージサイズを最適化。
COPY: ローカルのファイルやディレクトリをコンテナ内にコピー。
CMD: コンテナが起動したときのデフォルトのコマンド。

Dockerfileを使うことで、誰でも同じ環境を簡単に再現でき、開発・テスト・本番環境の統一が容易になります。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?