使用Dockerfile构建镜像

使用背景

  1. 环境差异需要:屏蔽不同操作系统及OS不同版本带来的安装差异;
  2. 做持续集成需要:做CI/CD的时候,从源码服务器下载代码,本地构建出目标版本后,需要自动打包成容器镜像用于部署;

构建环境

  1. 宿主操作系统:使用VirtualBox在MAC上虚拟的一个Ubuntu操作系统 Ubuntu16.04 LTS版本
  2. Docker Server Version :18.03.1-ce

构建目标

  1. 目标:基于ubuntu原始镜像构建jdk+tomcat的应用环境
  2. 软件版本
  • jdk版本:jdk-8u171-linux-x64.tar.gz
  • jdk下载地址:http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-i586.tar.gz
  • tomcat版本:apache-tomcat-8.5.31.tar
  • tomcat下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/tomcat/tomcat-8/v8.5.31/bin/apache-tomcat-8.5.31.tar.gz
  1. 小提示:jdk8最好使用tomcat8版本进行搭配,否则容易出现编译失败的问题

构建脚本及过程

  1. 先创建一个目录docker-tomcat
  • 目录内容参考下图


    使用Dockerfile构建镜像_第1张图片
    image.png
  • 必须的文件说明
    jdk-8u171-linux-x64.tar.gz:用于拷贝到目标镜像中使用;
    apache-tomcat-8.5.31.tar.gz:用于拷贝到目标镜像中使用;
    tomcat7.sh:用于拷贝到目标镜像中使用;
    Dockerfile:用于构建镜像;
  • 非必须文件说明
    jdk1.8.0_171:用于验证解压缩jdk-8u171-linux-x64.tar.gz的命令,及解压缩后的文件目录结构;
    apache-tomcat-8.5.31:用于验证解压缩apache-tomcat-8.5.31.tar.gz的命令,及解压缩后的文件目录结构;
  1. 编写构建的Dockerfile
  • 名字必须是“Dockerfile”

  • Dockerfile文件内容参考如下


    使用Dockerfile构建镜像_第2张图片
    image.png
  • Dockerfile依赖的tomcat7.sh参考如下


    使用Dockerfile构建镜像_第3张图片
    image.png
  • 小提示
    在windows或者网页上拷贝的脚本代码可能在镜像中无法执行,需要现在ubuntu操作系统中完成dos2unix的文件格式转换。

  1. 构建mytomcat镜像
  • 先切换到docker-tomcat目录,在docker控制台执行命令(注意后边有一个. ,表示当前目录):
    docker build -t mytomcat .


    使用Dockerfile构建镜像_第4张图片
    image.png
  • 查看构建出的镜像:
    docker images

  1. 部署镜像启动容器
  • 命令行
    docker run -i -t -p 5000:8080 mytomcat


    使用Dockerfile构建镜像_第5张图片
    image.png
  • 命令行说明
    其中,docker run 用于运行一个容器
    -t 在容器指定一个伪终端或者终端;
    -i 进行命令交互;
    -p 匹配镜像内的网络端口号,即我们可以通过宿主机中访问5000端口来达到访问容器8080端口的目的。

  1. 验证效果
  • 通过浏览器查看


    使用Dockerfile构建镜像_第6张图片
    image.png

你可能感兴趣的:(使用Dockerfile构建镜像)