Dockerfile
# Description
Dockerfile là file instructions config để Docker build ra image. Trong Dockerfile là tập hợp các command line để build 1 image.
# Environment variables
FROM: Chỉ định base image
FROM [--platform=<platform>] <image> [AS <name>] FROM [--platform=<platform>] <image>[:<tag>] [AS <name>] # FROM centos:7.4.1708
1
2
3
4
5RUN: Execute command khi build image
RUN <command> RUN ["executable", "param1", "param2"] # RUN yum -y install httpd # intall apache RUN ["/bin/bash", "-c", "echo hello"] # echo hello
1
2
3
4
5
6CMD: Cung cấp command khi executing container. Nếu user chỉ định arguments khi
docker run
thì sẽ overide lại giá trị của CMDCMD ["executable","param1","param2"] CMD ["param1","param2"] CMD command param1 param2 # CMD echo "This is a test." | wc -
1
2
3
4
5
6RUN sẽ execute run command và commit kết quả trong khi build time, còn CMD chỉ cung cấp intended command cho image.
Docker chỉ run 1 CMD cuối cùng,
LABEL: Thêm metadata to an image. Định dạng key-value, view bởi lệnh
docker image inspect
LABEL <key>=<value> <key>=<value> <key>=<value> # LABEL version="1.0"
1
2
3
4EXPOSE: Chỉ định 1 port của container khi runtime.
EXPOSE <port> [<port>/<protocol>...] # EXPOSE 80/tcp
1
2
3
4Có thể overide giá trị khi runtime với option
-p
docker run -p 80:80/tcp
1ENV: set environment variable
ENV <key>=<value> ...
1ADD: Thêm file hoặc thư mục vào filesystem image
ADD [--chown=<user>:<group>] <src>... <dest> ADD [--chown=<user>:<group>] ["<src>",... "<dest>"] # ADD test.txt relativeDir/
1
2
3
4
5COPY: copy file hoặc thư mục vào filesystem container
COPY [--chown=<user>:<group>] <src>... <dest> COPY [--chown=<user>:<group>] ["<src>",... "<dest>"] # COPY test.txt relativeDir/
1
2
3
4
5COPY sẽ làm mất hiệu lực của cache cho tất cả following instructions của Dockerfile nếu file src thay đổi.
COPY được sử dụng nhiều hơn ADD . ADD có thể dùng cho các trường hợp file nén hay remote URL handle.
ENTRYPOINT: Config một container sẽ chạy như một executable
ENTRYPOINT ["executable", "param1", "param2"]
1CMD sẽ được overide bằng các alternative argument khi run container.
VOLUME: mount thư mục vào container.
VOLUME ["/data"]
1USER: set user name (UID) và group (GID) khi run image.
USER <user>[:<group>] USER <UID>[:<GID>]
1
2WORKDIR: set thư mục làm việc cho
RUN
,CMD
,ENTRYPOINT
,COPY
andADD
WORKDIR /path/to/workdir
1
Refer: https://docs.docker.com/engine/reference/builder/ (opens new window)