Dockerfileの定義
- コンテナビルドのためのコマンドの集合
- イメージ生成のための要素
Dockerfile コマンド | 内容 |
---|---|
FROM | コンテナの基本になるイメージ(運営環境) |
LABEL | コンテナビルドの情報、バージョンなどの情報を提供 |
RUN | コンテナビルドのビルドのため、イメージから実行するコマンド |
ADD | コンテナのビルド時に、ホストのファイル(tar, urlなど)をコンテナにコピー |
COPY | コンテナのビルド時に、ホストのファイルをコンテナにコピー |
WORKDIR | コンテナビルド時にコマンドを実行するコマンドDirectoryを設定 |
ENV | 環境変数の設定 |
USER | コンテナおよび、コンテナを実行時に適応するユーザ設定 |
EXPOSE | コンテナ実行時に外部から実行するポートの指定 |
CMD | コンテナ動作時に自動て実行するサービスやスクリプトの指定 |
ENTRYPOINT | CMDと一緒に利用し、COMMAND指定時に利用 |
例1
FROM centos:7.5.1804
RUN yum install httpd -y
RUN echo "hello world" > /var/www/html/index.html
CMD ["/usr/sbin/httpd", "-DFOREGROUND"]
例2
- 次の条件で
appjs:latest
コンテナをビルドしなさい- ビルドDirectory:
~/app_build/appjs
-
/data/ckad/app.js
のファイルを~/app_build/appjs
に移動した上で、次の条件に合わせてコンテナをビルドしなさい- base image:
node:12
-
app.js
ファイルをコンテナ/
Directroyにコピー - コンテナ実行時に
node
、app.js
が実行されるべき
- base image:
- ビルドDirectory:
FROM node:12
COPY app.js /
ENTRYPOINT ["node", "app.js"]
# CMD ENTRYPOINT ["node", "app.js"]
Docker iamge の作成
docker build -t appjs:latest .
docker run --name appjs -p 8080:8080 -d appjs