🛥️
Dockerfileリファレンス(ざっくりしすぎた版)
はじめに
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