0
点赞
收藏
分享

微信扫一扫

docker镜像基础: helloworld.war包镜像(上)


写在前面
  • 基于​​helloworld.war​​ 包,制作 helloworld 镜像
  • 熟悉 dockerfile 编写
  • 验证 commit 提交镜像失败问题
  • cp web项目至容器后,不能commit生成最新镜像(volume导致)
实验素材
  • ​​helloworld.war​​
  • jdk-8u31-linux-x64.tar.gz
  • apache-tomcat-8.0.53.tar.gz
  • centos 镜像版本
  • 拉取命令
  • ​docker pull centos:latest​
  • CentOS Linux release 7.5.1804 (Core)

    操作步骤
    • 1  上传( ​​XShell/SecureCRT​​ )实验素材至 宿主机服务器某文件夹下,文件目录结构如下:
    • docker镜像基础: helloworld.war包镜像(上)_web镜像

    • 2

    FROM centos:latest

    MAINTAINER kngines

    #把java与tomcat添加到容器中
    ADD jdk-8u31-linux-x64.tar.gz /usr/local/
    ADD apache-tomcat-8.0.53.tar.gz /usr/local/

    #配置java与tomcat环境变量
    ENV JAVA_HOME /usr/local/jdk1.8.0_131
    ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    ENV CATALINA_HOME /usr/local/apache-tomcat-8.0.53
    ENV CATALINA_BASE /usr/local/apache-tomcat-8.0.53
    ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin

    #容器运行时监听的端口

    • 3
    • ​docker build -t tomcat8-jdk1.8:latest . -f tomcat8-jdk1.8-dockerfile​
    • 镜像生成后,使用​​docker images​​ 查看本地镜像,如下:
    • 其中,200MB大小的镜像为拉取的最新CentOS镜像,590MB大小的镜像为构建的镜像,镜像大小有明显的改变。
    • docker镜像基础: helloworld.war包镜像(上)_java_02

    • 4
    • ​docker run -it -d -p 0.0.0.0:8088:8080 --name helloworld tomcat8-jdk1.8:latest​
    • ​docker ps -a​​,新生成的容器如下所示:
    • docker镜像基础: helloworld.war包镜像(上)_web镜像_03

    • 5
    • 进入容器:​​docker exec -it a76243528c21 /bin/bash​
    • a76243528c21 为新生成容器的ID
    • 在容器中,启动tomcat:​​sh /usr/local/apache-tomcat-8.0.53/bin/startup.sh​
    • 执行过程及结果如下:
    • docker镜像基础: helloworld.war包镜像(上)_java_04

    • 6
    • 结果显示如下:
    • docker镜像基础: helloworld.war包镜像(上)_tomcat_05

    • hellowworld.war镜像制作(上),到此已经成功结束。
    下载链接
    • ​​helloworld.war 源码包​​
    • ​​jdk1.8-tomcat8-helloworld.war​​
    其他命令
    • 查看宿主机 OS 版本信息
    • ​cat /etc/redhat-release​
    • 容器内安装​​ifconfig​
    • ​yum install net-tools​
    后记
    • 本想在本篇博文中把 helloworl.war 镜像制作过程整体记录下,感觉那样文章太长,阅读不便。所以将文章分了上下篇。
    • 当然,如果完成了博文中最后部分,仍旧可以通过​​commit​​ 创建自己的镜像,作为Web项目运行基础镜像,包含tomcat、jdk。
    • 下篇比较重要,主要是记录在镜像制作过程中遇到的坑(volume)。
    • 有问题欢迎留言,谢谢!


    举报

    相关推荐

    0 条评论