装饰网站建设的方案,wordpress主题point,金融网站模板素材,网站建设不好dockerFile编写
语法参数
# DockerFile常用指令
USER # 指定运行的用户#xff0c;一般不用配置
FROM # 拉取基础镜像#xff0c;一切从这里开始构建
ARG # 构建参数#xff0c;只能在dockerFile中使用,
# eg: JAR_FILEtarget/springboot-mongo-0.0.1-SNAPSHOT.jar
MAI…dockerFile编写
语法参数
# DockerFile常用指令
USER # 指定运行的用户一般不用配置
FROM # 拉取基础镜像一切从这里开始构建
ARG # 构建参数只能在dockerFile中使用,
# eg: JAR_FILEtarget/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指令的参数。Dockerfile中只能指定一个ENTRYPOINT如果指定了很多只有最后一个有效。docker run命令的-entrypoint参数可以把指定的参数继续传递给ENTRYPOINT。
copy和add的区别
add可以将压缩包进行自动解压还可以下载url的远程文件但官方不推荐这样使用官方建议我们当需要从远程复制文件时最好使用 curl 或 wget 命令来代替 ADD 命令。原因是当使用 ADD 命令时会创建更多的镜像层当然镜像的 size 也会更大ADD 的缺点在不解压的前提下无法复制 tar 压缩文件。会令镜像构建缓存失效从而可能会令镜像构建变得比较缓慢copy只能复制本地文件到镜像但是没有解压、下载需求建议使用copy
案例
springboot
FROM java:8
#此处的*为正则表达式表示以.jar结尾的同步录下的文件这里的jar是maven打包好的
COPY *.jar /app.jarCMD [--server.port8080]
EXPOSE 8080
ENTRYPOINT [java,-jar,/app.jar]使用dockerFile打包镜像
# -t 设置打包镜像tag -f 设置DockerFile文件 .选择当前目录
docker build -t testJar:1.0 -f .\DockerFile . redis案例一
#指定基础镜像默认最新版本
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]redis案例二
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]