赞
踩
# DockerFile常用指令 USER # 指定运行的用户,一般不用配置 FROM # 拉取基础镜像,一切从这里开始构建 ARG # 构建参数,只能在dockerFile中使用, # eg: JAR_FILE=target/springboot-mongo-0.0.1-SNAPSHOT.jar MAINTAINER # 镜像是谁写的, 姓名+邮箱 RUN # 镜像构建的时候需要运行的命令 ADD # 拷贝文件(支持正则表达式)到镜像,并自动解压(如果是压缩包),也可以自动下载URL并拷贝到镜像,如:ADD http://www.shiyanlou.com/html.tar /var/www WORKDIR # 镜像的工作目录 VOLUME # 挂载的目录,eg: VOLUME ["/home/appLog/redis","//home/2233"] EXPOSE # 暴露的端口配置 CMD # 指定这个容器启动的时候要运行的命令,只有最后一个会生效,可被替代。 ENTRYPOINT # 指定这个容器启动的时候要运行的命令,可以追加命令 COPY # 类似ADD命令,将我们的文件拷贝到镜像中 ENV # 构建的时候设置环境变量,可以在后续的指令中使用 HEALTHCHECK # 健康检查 ONBUILD # 延迟构建命令,在本次构建镜像不起作用,当下一个构建的dockerFile引用了本次构建镜像,将会执行命令
RUN
有两种格式shell 格式:
RUN <命令行命令> # <命令行命令> 等同于,在终端操作的 shell 命令。
exec 格式:
RUN ["可执行文件", "参数1", "参数2"]
# RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offlinexxxxxxxxxx
CMD
与 ENTRYPOINT
区别ENTRYPOINT
容器启动后执行的命令,让容器执行表现的像一个可执行程序一样,
ENTRYPOINT
与CMD
的区别是不可以被 docker run
的命令行参数指定的指令所覆盖,会把docker run
后面的参数当作传递给ENTRYPOINT
指令的参数。ENTRYPOINT
,如果指定了很多,只有最后一个有效。docker run
命令的-entrypoint
参数可以把指定的参数继续传递给ENTRYPOINT
。copy
和add
的区别add
可以将压缩包进行自动解压,还可以下载url的远程文件,但官方不推荐这样使用,官方建议我们当需要从远程复制文件时,最好使用 curl 或 wget 命令来代替 ADD 命令。原因是,当使用 ADD 命令时,会创建更多的镜像层,当然镜像的 size 也会更大copy
只能复制本地文件到镜像,但是没有解压、下载需求,建议使用copy
FROM java:8
#此处的*为正则表达式,表示以.jar结尾的同步录下的文件(这里的jar是maven打包好的)
COPY *.jar /app.jar
CMD ["--server.port=8080"]
EXPOSE 8080
ENTRYPOINT ["java","-jar","/app.jar"]
# '-t' 设置打包镜像tag, '-f' 设置DockerFile文件, '.'选择当前目录
docker build -t testJar:1.0 -f .\DockerFile .
#指定基础镜像,默认最新版本 FROM centos #设置镜像yum源,此处应该先进行备份 RUN rm -f /etc/yum.repos.d/* ADD CentOS-Linux-BaseOS.repo /etc/yum.repos.d/ #重新加载yum RUN yum clean all RUN yum makecache WORKDIR /usr/local #安装编译必备组件 RUN ["yum","install","-y","gcc","gcc-c++","net-tools","make"] # 复制并解压缩 ADD redis-5.0.4.tar.gz . WORKDIR /usr/local/redis-5.0.4/src #编译安装 RUN make && make install WORKDIR /usr/local/redis-5.0.4 #复制redis配置文件 ADD redis-6300.conf . # 暴露端口 EXPOSE 6300 # 容器运行时默认启动redis服务 CMD ["redis-server","redis-6300.conf"]
FROM centos:centos7
RUN ["yum" , "install" , "-y" ,"gcc","gcc-c++","net-tools","make"]
WORKDIR /usr/image
ADD redis-4.0.14.tar.gz .
WORKDIR /usr/image/redis-4.0.14/src
RUN make && make install
WORKDIR /usr/image/redis-4.0.14
ADD redis-7000.conf .
EXPOSE 7000
CMD ["redis-server","redis-7000.conf"]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。