Dockerfile的简介及使用(八)

问题背景

平常拉取docker可以直接从官网拉取,自己的服务也可以构建成镜像,自己随时使用

Docker无介绍快使用,安装部署hello测试(一)

Docker无介绍快使用,docker指令使用(二)

Docker无介绍快使用,docker数据卷Volumes挂载的使用(三)

Docker无介绍快使用,docker拉取mysql5.7及使用(四)

Docker无介绍快使用,docker拉取tomcat及使用(五)

Docker无介绍快使用,docker拉取Nginx(六)

Docker无介绍快使用,docker拉取redis(七)

Dockerfile的简介及使用(八)

Dockerfile

1 Dockerfile用来自己构建一个镜像的构建文件,使我们自己的应用可以容器运行
2 Dockerfile构建原理

3 Dockerfile命令说明

保留字作用
FROM当前镜像属于哪一个镜像,第一个指令必须为FROM
MAINTAINER镜像维护者的姓名和邮箱
RUN构建镜像时需要运行的指令
EXPOSE当前容器对外暴露的端口号
WORKDIR指定在创建容器后,终端默认登录进来的工作目录
ENV在构建镜像的过程中设置环境变量
ADD将宿主机目录下的文件拷贝进镜像,并且ADD命令会自动处理URL和解压tar包
COPY类似于ADD,拷贝文件和目录到镜像中
从构建上下文的目录中的文件或者目录,复制到镜像内的目标位置
VOLUME容器数据卷,用于数据保存和持久化,允许哪个目录挂载
CMD指定一个容器启动时要运行的命令,可以有多个CMD,但只有最后一个生效,CMD会被docker run之后的参数替换掉
ENTRYPOINT指定一个容器启动时要运行的命令,和CMD目的一样,指定容器启动程序及参数
  • FROM
    • FROM <image>
    • FROM <image>[:<tag>]
  • MAINTAINER
    • MAINTAINER <name>
  • RUN
    • RUN echo hello
    • RUN [“executable”,“param1”,“param2”]
    • RUN [“/bin/bash”,“-c”,“echo hello”]
  • EXPOSE
    • EXPOSE 80/tcp
    • EXPOSE 80/udp
  • CMD
    • CMD [“executable”,“param1”,“param2”]
    • CMD command param1 param2
  • WORKDIR 路径不存在会被创建
    • WORKDIR /path/to/workdir 绝对路径
    • WORKDIR a 相对路径,相当于/path/to/workdir/a
  • ENV
    • ENV <key> <value>
    • ENV <key>=<value>
  • ADD
    • ADD test.txt /absoluteDir/ 指定到绝对路径
    • ADD test.txt relative/ 指定到相对路径
    • ADD test* /a 可以使用通配符
    • ADD test? /a 匹配通配符
    • ADD 下载链接url /a 可以放一个下载链接,下载好之后自动放入文件夹a中
  • COPY
    • COPY source dest
  • VOLUME 允许/data目录挂载到宿主机的目录
    • VOLUME [“/data”]
  • ENTRYPOINT 与CMD类似,ENTRYPOINT用于写死指令,因为CMD更容易覆盖
    • ENTRYPOINT [“executable”,“param1”,“param2”]
    • ENTRYPOINT command param1 param2

4 Dockerfile样例

FROM centos:7   #从源镜像centos7开始构建
RUN yum install -y vim  #构建镜像时,安装vim这个命令
#RUN ["yum","install","-y","vim"]
EXPOSE 8080
EXPOSE 8081
#COPY a.txt /data/a
ENV BASE_DIR /data/a
ADD a.txt BASE_DIR
VOLUME ["/data"]
ENTRYPOINT ls #写死指令
CMD /data/a/a.txt #可覆盖的路径

5 构建Dockerfile,Dockerfile需要在当前目录,版本号01

docker build -t mycentos:01 .

心得

  • 主要讲解Dockerfile的几个常用指令,写个篇章讲解构建jar应用的Dockerfile




作为程序员第 86 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha …

Lyric:有目标就不累

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值