CentOS7下Docker中构建可以自动发布到项目的Tomcat容器

时间:2022-08-30 18:51:15

步骤

  • 下载镜像
    • 搜索相应的镜像文件:docker search 'tomcat' 如下

  CentOS7下Docker中构建可以自动发布到项目的Tomcat容器

    • 下载镜像:docker pull tomcat:7,如下图

      CentOS7下Docker中构建可以自动发布到项目的Tomcat容器

      PS:后面的数字代表tomcat的版本,可以自己选择。如:tomcat:7;tomcat:8;tomcat:9

    • 查看已经下载的tomcat镜像:docker images | grep "tomcat" 

      CentOS7下Docker中构建可以自动发布到项目的Tomcat容器

  • 制作新镜像
    • 原因:项目进行远程自动发布需要修改tomcat的配置文件,文件修改后一定要重新构建一个新的镜像,通过这个镜像创建容器运行。
      • 修改方法
      • 方法一:通过镜像创造出tomcat容器,修改容器中文件,然后通过容器重新构建一个新的tomcat镜像,最后通过这个新镜像运行容器。自己亲测:通过此步骤创建容器后,修改的文件不生效!!!以后会找原因。。。。
      • 方法二:通过Dockerfile创造镜像,步骤如下
        • 创建一个目录用来存放所需文件
          • 创建目录:mkdir   /home/jingguoliang/docker/tomcat_dockerfile(路径为栗子)
          • 进入此目录:cd /home/jingguoliang/docker/tomcat_dockerfile
        • 创建context.xml:touch context.xml
        • 编写context.xml
          <?xml version='1.0' encoding='utf-8'?>
          <!--
          Licensed to the Apache Software Foundation (ASF) under one or more
          contributor license agreements. See the NOTICE file distributed with
          this work for additional information regarding copyright ownership.
          The ASF licenses this file to You under the Apache License, Version 2.0
          (the "License"); you may not use this file except in compliance with
          the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
          distributed under the License is distributed on an "AS IS" BASIS,
          WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
          See the License for the specific language governing permissions and
          limitations under the License.
          -->
          <!-- The contents of this file will be loaded for each web application -->
          <Context reloadable="true"> <!-- Default set of monitored resources -->
          <WatchedResource>WEB-INF/web.xml</WatchedResource> <!-- Uncomment this to disable session persistence across Tomcat restarts -->
          <!--
          <Manager pathname="" />
          --> <!-- Uncomment this to enable Comet connection tacking (provides events
          on session expiration as well as webapp lifecycle) -->
          <!--
          <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
          --> </Context>
        • 创建tomcat-users.xml:touch tomcat-users.xml
        • 编写tomcat-users.xml文件
          <?xml version='1.0' encoding='utf-8'?>
          <!--
          Licensed to the Apache Software Foundation (ASF) under one or more
          contributor license agreements. See the NOTICE file distributed with
          this work for additional information regarding copyright ownership.
          The ASF licenses this file to You under the Apache License, Version 2.0
          (the "License"); you may not use this file except in compliance with
          the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software
          distributed under the License is distributed on an "AS IS" BASIS,
          WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
          See the License for the specific language governing permissions and
          limitations under the License.
          -->
          <tomcat-users>
          <!--
          NOTE: By default, no user is included in the "manager-gui" role required
          to operate the "/manager/html" web application. If you wish to use this app,
          you must define such a user - the username and password are arbitrary. It is
          strongly recommended that you do NOT use one of the users in the commented out
          section below since they are intended for use with the examples web
          application.
          -->
          <!--
          NOTE: The sample user and role entries below are intended for use with the
          examples web application. They are wrapped in a comment and thus are ignored
          when reading this file. If you wish to configure these users for use with the
          examples web application, do not forget to remove the <!.. ..> that surrounds
          them. You will also need to set the passwords to something appropriate.
          -->
          <!--
          <role rolename="tomcat"/>
          <role rolename="role1"/>
          <user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
          <user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
          <user username="role1" password="<must-be-changed>" roles="role1"/>
          -->
          <role rolename="tomcat"/>
          <role rolename="role1"/>
          <role rolename="manager-gui" />
          <role rolename="manager-script" />
          <role rolename="manager-status" />
          <user username="tomcat" password="tomcat" roles="tomcat"/>
          <user username="both" password="tomcat" roles="tomcat,role1"/>
          <user username="role1" password="tomcat" roles="role1"/>
          <user username="deploy" password="tomcat" roles="manager-gui,manager-script,manager-status" /> </tomcat-users>
        • 创建Dockerfile文件:touch Dockerfile(D要大写)
        • 编写Dockerfile文件:vim Dockerfile  并保存。
          # First docker file from jingguoliang
          # VERSION 0.0.1
          # Author: jingguoliang #基础镜像
          FROM docker.io/tomcat:7 #作者
          MAINTAINER jingguoliang <jixue_jing@163.com> #定义工作目录
          ENV WORK_PATH /usr/local/tomcat/conf #定义要替换的tomcat-users.xml文件名
          ENV USER_CONF_FILE_NAME tomcat-users.xml
          #定义要替换的context.xml文件名
          ENV CONTEXT_CONF_FILE_NAME context.xml #删除tomcat原文件tomcat-users.xml
          RUN rm $WORK_PATH/$USER_CONF_FILE_NAME
          #删除tomcat原文件context.xml
          RUN rm $WORK_PATH/$CONTEXT_CONF_FILE_NAME #复制文件tomcat-users.xml到tomcat容器下; .代表当前目录,如果Dockerfile和tomcat-users.xml;context.xml不在同一目录,需要改变配置文件路径
          COPY ./$USER_CONF_FILE_NAME $WORK_PATH/
          #复制文件context.xml到tomcat容器下
          COPY ./$CONTEXT_CONF_FILE_NAME $WORK_PATH/
          • From:我们将要在哪个镜像进行操作,使用格式为 From "镜像名称:版本"
          • MAINTAINER:制作者,使用格式为  MAINTAINER "作者名称"  <"邮箱"”>
          • 工作目录:此工作目录为Docker中的tomcat容器的配置文件的目录
          • ENV:定义变量,使用格式为 ENV "变量名称" "变量值"
          • RUN:执行命令,使用格式为  RUN  "命令"
          • 引用变量:$+"已经定义的变量名称",如:$WORK_PATH
        • 执行Dockerfile:docker build -t tomcat7:v1 .             如下图所示
          • tomcat7:7  新构建的镜像名称:镜像标签
          • .   当前目录

          CentOS7下Docker中构建可以自动发布到项目的Tomcat容器

        •  成功后查看镜像文件:docker images,如下图

          CentOS7下Docker中构建可以自动发布到项目的Tomcat容器

      • 制作镜像完成
  • 启动容器
    • 执行命令启动容器:docker run -itd -p 8070:8080 --name tomcat7 --privileged=true  tomcat7:v1
    • 查看启动的容器:docker ps ,如下图

      CentOS7下Docker中构建可以自动发布到项目的Tomcat容器

    • 访问容器:http://localhost:8070/manager,输入用户名、密码可以通过验证,进入如下页面

      CentOS7下Docker中构建可以自动发布到项目的Tomcat容器

  • 完成。

CentOS7下Docker中构建可以自动发布到项目的Tomcat容器的更多相关文章

  1. CentOS7下Docker中构建Jenkins容器

    背景 在CentOS搭建Docker完成后,我们需要在Docker中搭建Jenkins用来实现工程自动部署. 安装前提 jdk已安装,安装目录如:usr/java/jdk1.8.0_161 maven ...

  2. Docker-通过docker-maven-plugin插件实现docker镜像构建并自动发布到远程docker服务器

    我们知道,docker能实现应用打包隔离,实现快速部署和迁移.如果我们开发应用使用了spring cloud + spring boot架构,那么,通过docker-maven-plugin实现快速构 ...

  3. 将自己的SpringBoot应用打包发布到Linux下Docker中

    目录 将自己的SpringBoot应用打包发布到Linux下Docker中 1. 环境介绍 2. 开始前的准备 2.1 开启docker远程连接 2.2 新建SpringBoot项目 3. 开始构建我 ...

  4. centos7下docker的安装教程

    Centos7下docker安装教程以及踩过的那些坑 推荐在Centos下安装docker,在windows下安装docker可能会遇到很多的问题,而且docker官方推荐使用linux环境来使用do ...

  5. centos7下docker发布第一个微服务应用&lpar;Eureka&rpar;

    1.在windows下打包 微服务应用通过maven进行打包,在项目的pom.xml执行mvn clean package,或者直接通过idea或者eclipse进行maven打包 之上操作将在项目的 ...

  6. CentOS7下Docker的安装与使用

    前言 简介 Docker 是一个开源的应用容器引擎,基于 Go 语言,并遵从 Apache2.0 协议开源. Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到 ...

  7. CentOS7 下Docker最新入门教程 超级详细 &lpar;安装以及简单的使用&rpar;

    转载https://blog.csdn.net/wzsy_ll/article/details/82866627 1.为什么使用Docker(本人) 最近总是频繁的在新服务器发布项目, 每次发布都需要 ...

  8. Windows下配置Jenkins 实现自动发布maven项目至tomcat(svn&plus;maven&plus;tomcat)

    Jenkins安装完成之后,需要我们对其配置,然后才可以实现自动部署项目. 前提 防火墙开放tomcat的8080端口 Linux(CentOS):firewall-cmd --zone=public ...

  9. Linux下docker中安装宝塔面板教程

    本人云服务器,装的cent os7.6,在cent os7.6已装了docker,没装的可以借鉴 https://www.cnblogs.com/xiaoyige/p/12673076.html 1. ...

随机推荐

  1. 实例源码--Android软件更新模块

    下载源码   技术要点: (1) 通过网络检测服务器版本与本地版本 (2) 通过服务器下载最新版本 (3) 自动覆盖安装本地版本 详细介绍: 主要源码实现如下:  

  2. 《C和指针》 读书笔记 -- 第10章 结构和联合

    1.聚合数据类型能够同时存储超过一个的单独数据,c提供了两种类型的聚合数据类型,数组和结构. 2.[1] struct SIMPLE { int a; }; struct SIMPLE x; [2] ...

  3. 制作 macOS Sierra 正式版U盘USB启动安装盘方法教程 &lpar;全新安装 Mac 系统&rpar;

    使用命令行创建制作 macOS Sierra 正式版 USB 安装盘 1.准备一个 8GB 或更大容量的 U盘,并备份好里面的所有资料. 2.下载好 macOS Sierra 正式版的安装程序(app ...

  4. tcp&sol;ip详解 卷1 -- 链路层

    以太网 以太网指数字设备公司,英特尔公司,Xeror公司在 1982年联合公布的一个标准, 是当前 TCP/IP 采用的主要局域网技术. 以太网采用 CSMA/CD 的媒体接入方法, 即 带冲突检测的 ...

  5. windows安装pycrypto报错

    在Windows上安装的时候直接 pip install pycrypto会报错 由于直接安装安装Crypto模块 会报错如下:因此需要先安装Microsoft Visual C++ 9.0 进入下载 ...

  6. Mac pip install mysql-python

    首次在mac os 下,用pip install MySQL-Python时经常出现如下错误: sh: mysql_config: command not foundTraceback (most r ...

  7. css 性能优化小结

    1.能用css不用js 1.鼠标悬浮展示              2.自定义radio.checkbox的样式 3.巧用css伪类 当input获取焦点时候,把右边的按钮改变样式 检测用户输入:如果 ...

  8. 控件布局&lowbar;TableLayout

    <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android=&quot ...

  9. DDoS防御方案

    转自:http://netsecurity.51cto.com/art/201211/368930.htm 深入浅出DDoS攻击防御应对篇:DDoS防御方案 谈到DDoS防御,首先就是要知道到底遭受了 ...

  10. css初探

    CSS 语法 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明. selector {                   property: value;                 ...