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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24452475/article/details/83718182
写在前面
  • 基于 helloworld.war 包,制作 helloworld 镜像
  • 熟悉 dockerfile 编写
  • 验证 commit 提交镜像失败问题
    • cp web项目至容器后,不能commit生成最新镜像(volume导致)

实验素材

操作步骤
  • 1  上传( XShell/SecureCRT )实验素材至 宿主机服务器某文件夹下,文件目录结构如下:
    tree

  • 2  编写 dockerfile, 具体如下:

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

#容器运行时监听的端口
EXPOSE  8080
  • 3  dockerfile 构建镜像:

    • docker build -t tomcat8-jdk1.8:latest . -f tomcat8-jdk1.8-dockerfile
    • 镜像生成后,使用 docker images 查看本地镜像,如下:
      • 其中,200MB大小的镜像为拉取的最新CentOS镜像,590MB大小的镜像为构建的镜像,镜像大小有明显的改变。
        docker镜像
  • 4  创建容器:

    • docker run -it -d -p 0.0.0.0:8088:8080 --name helloworld tomcat8-jdk1.8:latest
      • docker ps -a,新生成的容器如下所示:
        v1
  • 5  访问

    • 进入容器: docker exec -it a76243528c21 /bin/bash
      • a76243528c21 为新生成容器的ID
      • 在容器中,启动tomcat: sh /usr/local/apache-tomcat-8.0.53/bin/startup.sh
        • 执行过程及结果如下:
          容器内启动
  • 6  结果

    • 结果显示如下:
      http_result结果
    • hellowworld.war镜像制作(上),到此已经成功结束。

下载链接

其他命令
  • 查看宿主机 OS 版本信息
    • cat /etc/redhat-release
  • 容器内安装 ifconfig
    • yum install net-tools

后记
  • 本想在本篇博文中把 helloworl.war 镜像制作过程整体记录下,感觉那样文章太长,阅读不便。所以将文章分了上下篇。
  • 当然,如果完成了博文中最后部分,仍旧可以通过 commit 创建自己的镜像,作为Web项目运行基础镜像,包含tomcat、jdk。
  • 下篇比较重要,主要是记录在镜像制作过程中遇到的坑(volume)。
  • 有问题欢迎留言,谢谢!

猜你喜欢

转载自blog.csdn.net/qq_24452475/article/details/83718182