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?

【Docker入門】appってなんやねん!

Posted at

はじめに

Dockerを勉強していると、Dockerfileの中に頻繁に登場する「app」という文字。
「appってなんのこと?」「これがないとダメ?」と疑問に感じる人も多いと思います。
この記事では、このappの正体についてわかりやすく説明していきます!

記事の対象者

  • Docker初心者の方
  • Dockerfileを初めて書く方
  • Dockerの基本的な仕組みを理解したい方

Dockerのappとは

Dockerにおけるappとは、特別な予約語や特定の機能を指す言葉ではありません。
実はDockerfileでよく使われる、仮想の作業ディレクトリ(作業場)の名前のことなのです。
つまり、

  • コンテナ内に仮想的に作る作業スペース(フォルダ)の名前
  • 自分のソースコードや環境設定ファイルを置いておく場所

を便宜的にappと呼んでいるだけで、別にappという名前でなくてもOKです。
では、なぜappを使うのでしょうか?
それは単純に、みんなが使う慣例であり、
Dockerfileを書くときにわかりやすく、一貫性が出るからです。

実際の挙動(Dockerファイルを使いながら説明)

実際のDockerfileを使って解説しましょう。

FROM continuumio/miniconda3:latest

WORKDIR /app

COPY conda.yml /app/conda.yml

RUN conda env create -f /app/conda.yml && \
    conda clean -afy

SHELL ["conda", "run", "-n", "aml-env", "/bin/bash", "-lc"]

COPY . /app

CMD ["python", "train.py"]

各コマンドの意味

  • FROM continuumio/miniconda3:latest
    • Dockerのベースイメージを指定します。ここでは、Minicondaが入っている環境を使います。
  • WORKDIR /app
    • コンテナ内にappというフォルダを作り、それを作業場所に指定します。
    • 以降の命令はすべてここで実行されます。
  • COPY conda.yml /app/conda.yml
    • conda.ymlという設定ファイルをコンテナ内の作業場所にコピーします。
  • RUN conda env create -f /app/conda.yml && conda clean -afy
    • conda.ymlを元に、Pythonの環境を構築し、不要なデータを削除します。
  • SHELL ["conda", "run", "-n", "aml-env", "/bin/bash", "-lc"]
    • 以降の命令を、作成した環境(aml-env)上で動かすことを指定します。
  • COPY . /app
    • 自分のPCにあるコードやファイルを、作業場所(/app)にすべてコピーします。
  • CMD ["python", "train.py"]
    • コンテナを立ち上げると、train.pyを実行するように設定します。

「app」の名前を変えたかったら?

もちろん、app以外の名前を使っても問題ありません。
たとえば、my_projectworkspaceに変えたい場合は、Dockerfileをこう書くだけです。

WORKDIR /my_project
COPY . /my_project

重要なのは、プロジェクト内で一貫して同じ名前を使うことです。


以上がDockerのappの正体でした。
これで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?