Dockerfile を使用してコンテナに Mkdir コマンドでディレクトリを作成する

Isaac Tony 2023年6月20日
Dockerfile を使用してコンテナに Mkdir コマンドでディレクトリを作成する

Docker コンテナーは、さまざまな環境でソフトウェアと依存関係を管理するための事実上の方法になりました。 実際のアプリケーションを操作する場合、アプリケーション コンテナー イメージをビルドする前に、Dockerfile を作成する必要があることは間違いありません。

Dockerfile を使用してコンテナに mkdir コマンドでディレクトリを作成する

開発者が Docker イメージを作成するために必要なコマンドを組み立てることができるようにするだけでなく、Dockerfile でできることは他にもたくさんあります。 Dockerfile を使用して Docker イメージを正常に作成するには、いくつかの基本的なコマンドを知っている必要があります。

最もよく使用されるコマンドには次のものがあります。

  1. FROM - 使用される親イメージ/ベース イメージのレイヤーを作成します。
  2. WORKDIR - 作業ディレクトリを設定できます。
  3. COPY - 現在のディレクトリの内容をコンテナ内のディレクトリにコピーできます。
  4. PULL - Docker リポジトリからファイルを追加します。
  5. RUN - イメージをビルドするときに実行するコマンド。
  6. CMD - コンテナの起動時に実行するコマンドを指定します。
  7. ENV - ビルド中に使用される環境変数を定義します。
  8. ENTRYPOINT - コンテナの起動時に実行するコマンドを指定します。
  9. MAINTAINER - 画像の作者を指定します。

上記のコマンドを使用して、Python をベース イメージとして使用する以下のような Dockerfile を作成できます。

コード:

#  base image
FROM Python

# Set your working directory
WORKDIR /var/www/
# Copy the necessary files
COPY ./app.py /var/www/app.py
COPY ./requirements.txt /var/www/requirements.txt

# Install the necessary packages
RUN pip install -r /var/www/requirements.txt
# Run the app
CMD ["echo", "Hello, Developer"]

この Dockerfile は、コンソールにメッセージを出力するだけの単純な Flask アプリケーションの一部です。 同じアプリケーションの作成に興味がある場合は、ここに requirements.txt ファイルがあります。

click==8.0.4
Flask==2.0.3
gunicorn==20.1.0
itsdangerous==2.1.0
Jinja2==3.0.3
MarkupSafe==2.1.0
Werkzeug==2.0.3

そのメイン アプリケーション ファイルを含むメイン ファイル app.py を以下に示します。

コード:

from flask import Flask

app = Flask(__name__)


def hello():

    print("Hello, this is a simple Flask application")


hello()

ここで、Docker コンテナーのファイル システム内に mkdir コマンドを使用してディレクトリを作成するには、以下に示すように RUN コマンドを使用します。

#  base image
FROM Python

# Set your working directory
WORKDIR /var/www/
# Copy the necessary files
COPY ./app.py /var/www/app.py
COPY ./requirements.txt /var/www/requirements.txt

# Install the necessary packages
RUN pip install -r /var/www/requirements.txt
RUN mkdir -p /var/www/new_directory
# Run the app
CMD ["echo", "Hello, Developer"]

コマンド RUN mkdir -p /var/www/new_directory を使用すると、Docker ファイル システム内に new_directory という名前のディレクトリを作成できます。このディレクトリは、上記の Docker ファイルを使用してビルドされたイメージを使用して最終的にビルドします。

ただし、以下のコマンドを実行して、基本イメージとして Python に基づく Docker イメージを構築することから始めます。

isaac@DESKTOP-HV44HT6:~/my-app$ docker build -t new_image .

出力:

docker build new image

以下の docker images コマンドを使用して、Docker ファイルから Docker イメージが正常に作成されたことを確認します。

$ docker images

出力:

REPOSITORY   TAG       IMAGE ID       CREATED          SIZE
new_image    latest    7ab964c50876   13 minutes ago   932MB

Docker イメージが配置されたので、先に進んで Docker コンテナを作成し、new_directory という名前のディレクトリが作成されたかどうかを確認できます。 以下に示すように、コンテナ内で Bash を起動して、Docker コンテナ内のディレクトリをナビゲートする必要があります。

$ docker run -it new_image bash
root@ea42f35d5404:/var/www#

このディレクトリ内のファイルを一覧表示すると、new_directory が作成されていることがわかります。 これに加えて、ディレクトリ自体をナビゲートしたり、その中に新しいファイルを作成したりすることもできます。

root@ea42f35d5404:/var/www# ls
app.py  new_directory  requirements.txt
root@ea42f35d5404:/var/www# cd new_directory
root@ea42f35d5404:/var/www/new_directory# ls
root@ea42f35d5404:/var/www/new_directory# touch new_file
root@ea42f35d5404:/var/www/new_directory# ls
new_file
著者: Isaac Tony
Isaac Tony avatar Isaac Tony avatar

Isaac Tony is a professional software developer and technical writer fascinated by Tech and productivity. He helps large technical organizations communicate their message clearly through writing.

LinkedIn

関連記事 - Docker Directory