Dockerfile的简介及使用(八)

导读:本篇文章讲解 Dockerfile的简介及使用(八),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

问题背景

平常拉取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构建原理
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 …
Dockerfile的简介及使用(八)Dockerfile的简介及使用(八)Dockerfile的简介及使用(八)

Lyric:有目标就不累

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/110789.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!