1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Dockerfileを書くメモ

Last updated at Posted at 2020-07-21

Dockerfileは、docker imageを作る(build)元の書類です。

docker buildで作成します

docker image build [OPTIONS] PATH | URL | -
$ docker image build -t New_Image .
  • -t : tag imageの名前とタグ name:tag の形式
  • . : パス Dockerfileのパス '.'は、カレントディレクトリの意味

Dockerfileの書式

  • FROM : docker imageのベースになるimage、Docker Hubのregistry

    • Dockerfile では、FROMは一番最初に書く
    • FROM <イメージ>
    • FROM <イメージ>:<タグ> or FROM <イメージ>@
  • USER : 実行ユーザーの指定

  • WORKDIR : 作業用ディレクトリを移動する

  • RUN : イメージビルド時に、Dockerコンテナ内で実効するコマンド

  • COPY : Hostのファイルやディレクトリをcontainer内にコピーする

  • ADD : ADD <ソース>... <送信先>

    • ADD ["<ソース>", ... "<送信先>"] この形式はパスに空白スペースを使う場合
  • CMD : コンテナ内で実行するプロセス

    • CMD ["実行バイナリ・ファイル"," 引数1"," 引数2”]
    • CMD ["ping","127.0.0.1","-c","100”]
    • CMD shell コマンド CMD ping 127.0.0.1 -c 10
  • ENTRYPOINT : CMDの引数はENTORYPOINTで実行FILEへの引数に

    • ENTRYPOINT ["ping”]
    • CMD ["127.0.0.1", "-c", "50”]
  • LABEL : imageの作者名などに使える

    • LABEL = = = ...
  • ENV : container内FR使える環境変数

  • ARG : ビルド時に利用出来る環境変数

  • EXPOSE : ポートのエクスポート ポートを開ける

  • VOLUME : ボリュームのエクスポート

  • MAINTAINER : 作成者の情報

DeepLearningの開発環境を作った例

Dockerfile

FROM jupyter/scipy-notebook

USER root
RUN apt-get update && apt-get install -y build-essential graphviz-dev graphviz pkg-config

USER $NB_UID

# Install Tensorflow
RUN pip install --quiet \
    'tensorflow==2.1.0' \
    graphviz \
    pydotplus \
    torch torchvision && \
    fix-permissions $CONDA_DIR && \
    fix-permissions /home/$NB_USER
    
  • FROM : 元になるimageを指定してます
  • USER : ユーザーをrootに切り換えています
  • RUN : aptコマンドでupdateとinstallをしています
  • USER : ユーザーを戻しています
  • RUN : pip コマンドでモジュールをインストールしています、最後にパーミッションを合わせています

dockerはレイヤーの集合体なのでなのでDockerfileの命令をまとめて出す方が効率的

  • imageレイヤー数が減ります
  • docker imageのレイヤー構造の確認は、docker image history name:tag
  • &&で命令を結合出来ます
  • apt-get install --no-install-recommends オプションで推薦パッケージインストール
  • apt-get install後は、rm -rf /var/lib/apt/lists/* キャッシュ削除する方が良い
1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?