🛥️

Dockerfileリファレンス(ざっくりしすぎた版)

2021/01/27に公開

はじめに

docker-composeでLAMP環境を作る記事を書きました。
5分でできる!超実践Doker入門
この中では、細かい説明を省略してしまっているので、読んだあと何が残るかというと、構築した環境が残るのみです。
なので、Dockerfile内のコマンドについてまとめておきたいと思います。
(ただこの手の記事はいっぱいあるので、調べればもっと詳しいの出てきますねきっと)

ただ同様に、駆け出し・伸び悩みエンジニア向けの記事なので、ものすごく感覚的にまとめます。

Dockerfileリファレンス

詳細な説明は...

Dockerfile リファレンスでご確認ください。

コマンド一覧

なお、よく使う度は独断と偏見にて設定されます。
(自信がないからコメントでフォローするといういじらしさ)

FROM

  • 概要:ベースイメージの指定
  • よく使うレベル:必須
  • 使い方:
    FROM <image>
    

CMD

  • 概要:コンテナ起動時に実行するコマンドを指定、1つだけ指定できる
  • よく使うレベル:必須
  • 使い方:
    CMD <command> <arg1> <arg2> ...
    
    もしくは
    CMD ["command", "arg1", "arg2"...]
    

RUN

  • 概要:イメージをビルド時に実行するコマンドを指定
  • よく使うレベル:激高
    • パッケージインストールとかするよね
    • 色々やりたいってなると、Linuxの知識が必要になるよ!
  • 使い方:
    シェル形式
    RUN <command>
    
    もしくは
    exec形式
    RUN ["command", "arg1", "arg2"]
    

EXPOSE

  • 概要:ネットワーク内で公開するポートを設定する
  • よく使うレベル:高
    • ホストマシンへの公開ではないことを言っておきたい
  • 使い方:
    EXPOSE <port>
    

COPY

  • 概要:コンテナ内にファイルコピーする
  • よく使うレベル:高
    • そのままコピーしてくれるが、所有者は変わる
    • srcはビルドコンテキスト内に存在する必要がある
  • 使い方:
    COPY <src> <dest>
    

ENV

  • 概要:環境変数を設定する
  • よく使うレベル:中
  • 使い方:
    ENV <key> <value>
    

ADD

  • 概要:コンテナ内にファイルコピーする
  • よく使うレベル:中
    • COPYに使い方は近い
    • けど、tarとか勝手に展開しちゃうらしいよ
  • 使い方:
    ADD <src> <dest>
    

USER

  • 概要:RUN, CMD, ENTRYPOINTの実行ユーザを指定する
  • よく使うレベル:中
    • rootでは困る場面があるからね
  • 使い方:
    USER <UID>[:<GID>]
    

WORKDIR

  • 概要:コマンドを実行するディレクトリを指定する
  • よく使うレベル:低
    • いるときはいるんだろうな、ってイメージ
  • 使い方:
    WORKDIR <directory>
    

ARG

  • 概要:ベースイメージのビルド時に指定する引数
  • よく使うレベル:低
    • (2021年1月現在)まだ使ったことない
  • 使い方:
    ARG <name>[=<default value>]
    

LABEL

  • 概要:メタ情報を追加する
  • よく使うレベル:低
    • (2021年1月現在)まだ使ったことない
  • 使い方:
    LABEL <key>=<value> <key>=<value> <key>=<value> ...
    

ENTRYPOINT

  • 概要:コンテナ起動時に実行するコマンドを指定、1つだけ指定できる
  • よく使うレベル:低
    • CMDとの違いがわからないけど、いずれ必要になるんだと思っている
  • 使い方:
    ENTRYPOINT <command> <arg1> <arg2> ...
    
    もしくは
    ENTRYPOINT ["command", "arg1", "arg2"...]
    

VOLUME

  • 概要:ホストマシンとのマウントポイントを作成する
  • よく使うレベル:低
    • 起動時のオプションでマウントしちゃうからね...
  • 使い方:
    VOLUME ["/data"]
    

最後に

引き続き、素敵なDockerライフをお過ごしください!
(もっと少数に絞るつもりだったのに、結構書いてしまった。)

Discussion