docker案例之制作tomcat镜像

  1. 进入/opt/tomcat9路径下,上传我们需要的tomcat以及jdk安装包
     
  2. 下面我们开始在这个目录下编写Dockerfile文件

    Dockerfile内容:
    #基于我们从阿里云下载下来的centos基础镜像
    FROM centos
     
    #定义维护者的信息
    MAINTAINER kgf<kgf@163.com>
     
    #把宿主机当前上下文的test1.txt文件拷贝到容器/usr/local/路径下
    COPY readme.txt /usr/local/readme.txt
     
    #把java与tomcat添加到容器中,使用ADD命令会自动帮我们解压
    ADD jdk-8u191-linux-x64.tar.gz /usr/local/
    ADD apache-tomcat-9.0.12.tar.gz /usr/local/
     
    #安装vim编辑器
    RUN yum -y install vim
     
    #设置工作访问时候的workdir路径,登录落脚点
    ENV MY_PATH /usr/local
    WORKDIR $MY_PATH
     
    #配置java与tomcat环境变量
    ENV JAVA_HOME /usr/local/jdk1.8.0_191
    ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    ENV CATALINA_HOME /usr/local/apache-tomcat-9.0.12
    ENV CATALINA_BASE /usr/local/apache-tomcat-9.0.12
    ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
     
    #容器运行时监听的端口
    EXPOSE 8080
     
    #启动时运行tomcat,下面的三种方式随便一种都可以使用
    #ENTRYPOINT ["/usr/local/apache-tomcat-9.0.12/bin/startup.sh"]
    #CMD ["/usr/local/apache-tomcat-9.0.12/bin/catalina.sh","run"]
    CMD /usr/local/apache-tomcat-9.0.12/bin/startup.sh && tail -F /usr/local/apache-tomcat-9.0.12/bin/logs/catalina.out

     

  3. 执行dockerfile文件
    命令:docker build -f /opt/tomcat9/Dockerfile -t mytomcat:v1.0 .

  4. 运行镜像生成镜像的实例容器
    命令:
       
    docker run -d -p 9080:8080 --name myt9 \
    -v /opt/tomcat9/test:/usr/local/apache-tomcat-9.0.12/webapps/test \
    -v /opt/tomcat9/logs:/usr/local/apache-tomcat-9.0.12/logs \
    --privileged=true \
    mytomcat:v1.0
     
    #注释:
         -d:表示后台运行
         -p 宿主机端口号:容器内运行的软件程序端口  --->表示将容器内端口映射到宿主机,对外开放
         --name +容器名称  --->为运行启动的容器起一个别名
         -v +宿主机路径:容器内路径  --->表示为宿主机和容器添加关联数据卷
         --privileged=true   ---->这是为了防止数据卷没有读写权限
         mytomcat:v1.0   ---->这个是镜像的名称:版本号


  5. 查看运行效果:
  6. 查看本地主机是否同步了容器的数据卷
  7. 下面在自定义的tomcat9上发布web项目演示
    ⑴因为我们在容器内创建关联的数据卷目录是test命令,所以我们就将一个
        简单的名称为test的web项目部署到容器内。
        a:注意
             因为宿主机的test目录是和容器类的test关联目录,所以我们只需要将
             项目内文件传递到宿主机内即可。
        
    b:查看容器内test目录下文件

    ⑵重新启动运行的容器

    效果(完美):
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值