DockerFile构建过程及实战

DockerFile构建及命令学习

一、初识DockerFile

自定义一个dockerFile来创建一个自定义docker镜像,在生成镜像的时候就已经进行挂载数据卷,命令脚本如下

构建过程示例截图:
        创建一个dockerfile文件,命名可以随便写,但后续最好命名为Dockerfile 官方默认命名
        文件中的内容,指令要求大写,每一层的指令都是一个镜像的一层。

运行镜像并创建容器挂载数据卷:

上面是容器内挂载的地址,验证是否同步到主机对应的绑定的文件下,通过 docker inspect 容器ID来查看元数据如下图:

然后进入对应绑定的主机地址如:查看数据卷是否得到同步

二、DockerFile介绍

Dockerfile是用来构建docker镜像的文件,是一个命令参数脚本

①、构建步骤:
            1、编写一个dockerfile文件
            2、docker build 构建成一个镜像
            3、docker run 运行一个镜像
            4、docker push 发布镜像 官方dockerHub或者阿里云镜像仓库
       ②、以centos为例,查看其dockerFile文件如下:

    

由上可以发现我们官方的镜像都是基础包,很多功能没有我们通常会搭建自己的镜像,比如我们的centos镜像很多命令用不了,加入我想用基本的命令然后还会加入        一些jdk、tomcat等环境,那么我们就要重新编写dockerFile文件了。

三、DockerFile构建过程

①、Dockerfile构建的结构

②、基础指令知识
           
1、每个保留关键字必须是大写字母
           2、执行是从上到下的顺序
           3、#标识注释
           4、每一行指令都会创建一个新的镜像层,都会提交

小结:    

   DockerFile:构建文件、定义一系列步骤,源代码
          DockerImages:通过DockerFile构建生成的镜像,最终发布和运行的产品
          Docker容器:容器就是镜像运行起来提供服务

三、DockerFile指令学习

四、使用DokerFile自定义构建一个centos镜像

注意:DockerHub中99%的镜像都是从From scratch这个基础镜像构建而来的,然后在ADD配置需要的软件及配置
    脚本命令如下:

  1.         FROM centos   #基础镜像
  2.         MAINTAINER denghuaijun<1286753432@qq.com>   #作者
  3.         ENV MYPATH /usr/local    #环境配置
  4.         WORKDIR $MYPATH     #工作目录,就是以交互方式进去之后的默认目录,正常默认是根陌路,现在进入容器之后直接就到了MYPATH目录
  5.         RUN yum -y install vim   # 构建镜像时让其安装vim命令 ,精简版的centos是没有这些命令的通过重新构建添加这些命令包
  6.         RUN yun -y install net-tools  #同上安装telnet镜像
  7.         EXPOSE 80    #对外暴漏80端口
  8.         CMD echo $MYPATH
  9.         CMD ECHO "......buid end...."
  10.         CMD /bin/bash

构建镜像截图:

运行自己定义的镜像容器效果区别如下:

可以通过 docker history 容器ID 来查看镜像的构建历史如下(这样就可以去研究官网镜像是如何做的):

五、CMD和ENTRYPOINT命令区别

 由上可知使用CMD则在后面“-l”替换了原有的dockerfile文件中的命令而使用ENTRYPOINT则会在原有命令后面追加

            若此时在后面 使用 docker run 3c4c9621ed91 -l 命令,则不会报错进而展示对应的文件目录详情。

六、使用dockerFile制作tomcat镜像

第一步:准备镜像文件压缩包tomcat压缩包及jdk压缩包上传至主机服务器上

        第二步:编写dockerfile文件,官方命名Dockerfile,build会自动寻找这个文件,就不需要-f指定文件路径(注意里面的压缩包及需要拷贝的文件要放在当前目录下)


        第三步:启动镜像

docker run -d -p 8080:8080 -v /home/docker/webapps:/usr/local/apache-tomcat-9.0.38/webapps -v /home/docker/tomcat_logs:/usr/local/apache-tomcat-9.0.38/logs mytomcat

第四步:验证及发布
            验证:访问tomcat地址主页出现,同时在宿主机中挂载目录及日志都存在,在容器中使用java -version验证jdk环境也已经配置安装

第五步:镜像发布

      ①、发布到DockerHub上

登录dockerHub地址成功如下:

登录成功之后就可以发布镜像(发布也是一层一层发布):

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值