Dockerfile
1.Dockerfile常用指令
指令 | 描述 |
---|---|
FROM | 构建新镜像是基于哪个镜像 |
MAINTAINER | 进行维护者姓名或邮箱地址 |
RUN | 构建镜像时运行的shell命令 |
ENV | 设置环境变量 |
USER | 为RUN、CMD和ENTRYPOINT执行命令指定运行用户 |
EXPOSE | 声明容器运行的服务端口 |
HEALTHCHECK | 容器中服务器健康检查 |
WORKDIR | 为RUN、CMD、ENTRYPOINT、COPY和ADD设置工作目录 |
ENTRYPOINT | 运行容器时执行,如果有多个CMD指令,最后一个生效 |
CMD | 运行容器时执行,如果有多个CMD指令,最后一个生效 |
ADD | 添加文件包或文件,带有解压的功能 |
COPY | 单纯复制文件,或文件夹 |
LABEL | 标签 |
2.1 FROM指令
-
基本语法
FROM <image>
FROM <image>:<tag>
-
使用案例
# base image
FROM centos
2.2 MAINTAINER指令
-
基本语法
MAINTAINER <name>
-
使用案例
# MAINTAINER
MAINTAINER shichao@scajy.cn
2.3 run指令
-
基本语法
run <要执行的命令>
run <command> (shell模式)
run [ "executable", "param1", "param2" ] (exec模式)
-
使用案例
run <command> (shell模式)
/bin/sh -c command
CMD /bin/sh -c 'nginx -g "daemon off;"'
run [ "executable", "param1", "param2" ] (exec模式)
run ["/bin/bash" , "-c", "nginx -g daemon off" ]
2.4 expose指令
-
基本语法
expose <prot> [<port>...]
-
使用案例
EXPOSE 80
2.5 cmd命令
-
基本语法
cmd [ "executable" , "param1" , "param2" ] (exec模式)
cmd command param1 param2 (shell模式)
-
使用案例
CMD /bin/sh -c 'nginx -g "daemon off;"'
2.6 entrypoint指令
-
基本语法
cmd [ "executable" , "param1" , "param2" ] (exec模式)
cmd command param1 param2 (shell模式)
-
使用案例
ENTRYPOINT ["nginx"]
2.7 ADD指令
-
基本语法
ADD <"src"> ...<dest>
ADD["<src>"..."<dest>"] (适用于文件路径中有空格的情况)
COPY <src>...<dest>
COPY [ "<src>"..."<dest>" ] (适用于文件路径中有空格的情况)
-
使用案例
ADD nginx-1.12.2.tar.gz /usr/local/src
COPY index.html /usr/local/nginx/html/
#执行结果
[root@1-230 nginx]# curl 192.168.0.230:8082
ni hao yello
2.8 VOLUME指令
-
基本语法
volume ["/data"]
2.9 workdir指令
-
基本语法
WORKDIR /path/to/workdir
-
使用案例
# change dir to /usr/local/src/nginx-1.12.2
WORKDIR /usr/local/src/nginx-1.12.2
2.10 user指令
-
基本语法
USER NGINX
USER user USER uid
USER user:group USER uid:gid
USER user:gid user uid:group
2.Dockerfile构建springboot应用
1.