​​


                          ​Docker 安装 tomcat 部署 jenkins 最新版系统

1、环境准备

虚拟机系统 Ubuntu 18.04.5

Docker 安装 tomcat 部署 jenkins 最新版系统_jdk

Docker 已安装完成,查看安装的版本信息:

Docker 安装 tomcat 部署 jenkins 最新版系统_ubuntu_02

ERROR: Got permission denied  ,说明 docker 需要 root 权限执行,切换到 root 权限后,查看版本信息,执行下面的指令:

# docker version

Docker 安装 tomcat 部署 jenkins 最新版系统_ubuntu_03

查看已经安装的本地镜像列表,输入如下指令:

# docker images

Docker 安装 tomcat 部署 jenkins 最新版系统_apache_04

可以看到已安装了一些系统镜像,本文是要在 docker 上安装 tomcat 服务,然后在部署 jenkins 最新系统,下面就开始上手实操。

二、下载镜像

还继续使用 Ubuntu 操作系统,就下载个 Ubuntu 的镜像,先搜索查看一下可用的版本,使用如下指令:

# docker search ubuntu

Docker 安装 tomcat 部署 jenkins 最新版系统_tomcat_05

拉取官方的镜像,使用如下指令:

# docker pull ubuntu

Docker 安装 tomcat 部署 jenkins 最新版系统_ubuntu_06

使用命令查看本地镜像列表,可以看到 ubuntu 镜像已拉到本地。

  ​在本地​ ​宿主机​ ​先创建 /home/scm/tomcat​ ​目录,并把相关安装包放在该目录下,也就是 tomcat & jdk 。

Docker 安装 tomcat 部署 jenkins 最新版系统_jenkins_07

容器是在镜像的基础上来运行的,只有容器启动运行了,就可以登录到容器中进行任何操作,也就可以安装任何所需的软件或应用程序。

使用下面的指令启动容器:

# docker run -i -t -v /home/scm/tomcat/:/mnt/tools/ 7e0aa2 /bin/bash

Docker 安装 tomcat 部署 jenkins 最新版系统_apache_08

执行指令相关参数说明:


  • -i:表示以 “交互模式” 运行容器
  • -t:表示容器启动后会进入其命令行
  • -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>

进入容器后,可以看到挂载到容器中的目录。

Docker 安装 tomcat 部署 jenkins 最新版系统_ubuntu_09

执行解压指令,解压 ​tomcat & jdk ​软件包​

# tar -xvf jdk-8u251-linux-x64.tar.gz

# tar -xvf apache-tomcat-8.5.66.tar.gz

Docker 安装 tomcat 部署 jenkins 最新版系统_jdk_10

把解压目录移动到 /usr/local/ 目录下,

执行如下指令:

# mv jdk1.8.0_251 /usr/local/ 

# mv apache-tomcat-8.5.66 /usr/local/tomcat8.5.66

Docker 安装 tomcat 部署 jenkins 最新版系统_jdk_11

移动到指定的目录下后,编写个启动脚本,当启动容器时,运行该脚本就可以直接自动启动 tomcat 服务了。

下面在做什么操作,想必应该知道吧?

Docker 安装 tomcat 部署 jenkins 最新版系统_tomcat_12

要编写一个启动脚本,必须得有上面的一步更新、安装操作后,才可以使用 vim 编辑器编写脚本。

Docker 安装 tomcat 部署 jenkins 最新版系统_ubuntu_13

启动脚本编写完成后,添加执行权限 # chmod a+x run.sh  ,以上步骤全部操作完成后,即可先退出容器。

Docker 安装 tomcat 部署 jenkins 最新版系统_ubuntu_14

查看正在运行的容器,此时,应该看不到任何正在运行的程序,因为刚才已经使用 exit 命令退出了容器,此时容器处于停止状态,如上图所示。

记住以上 ​CONTAINER ID(容器 ID)​,随后将通过 ​容器 ID​,创建一个可运行的​ tomcat 镜像​,执行如下指令:

# docker commit ebbe22 mytomcat:tomcat8

Docker 安装 tomcat 部署 jenkins 最新版系统_apache_15

该容器的 ID 是 ebbe22d1edba ,自定义创建的镜像名是 “​mytomcat:tomcat8​”,随后可使用镜像来启动​ tomcat8 ​容器。

三、启动容器

可以通过 “镜像名” 或 “镜像 ID” 来启动容器,与上次启动容器不同的是,现在不再进入容器的命令行,而是直接启动容器内部安装好的 tomcat 服务。

执行以下指令即可:

# docker run -d -p 28080:8080 -v /home/scm/tomcat/webapps/:/usr/local/tomcat8.5.66/webapps/ --name mytomcat_1 mytomcat:tomcat8 /root/run.sh

Docker 安装 tomcat 部署 jenkins 最新版系统_ubuntu_16


执行指令相关参数说明:


  • -d:表示以 “守护模式” 执行 /root/run.sh 脚本,此时 tomcat  控制台不会出现在输出终端上。
  • -p:表示宿主机与容器的端口映射,此时将容器内部的默认 8080 端口映射为宿主机的 ​28080​ 端口,这样就向外界暴露了 28080 端口,可通过 Docker 网桥来访问容器内部的 8080 端口了。
  • -v:表示需要将本地哪个目录挂载到容器中,格式:-v <宿主机目录>:<容器目录>
  • --name:表示容器名称,用一个有意义的名称命名即可。

容器已顺利启动了,进入到 tomcat 容器内,查看 tomcat 启动的相关进程及服务端口是否都正常。

Docker 安装 tomcat 部署 jenkins 最新版系统_jenkins_17

可以看到启动的进程及服务端口都正常

在打开浏览器,通过映射容易的端口,就可以访问到容器内的 tomcat 服务了。

Docker 安装 tomcat 部署 jenkins 最新版系统_jdk_18


在下载个 probe.war 监控包小工具,Copy 到 tomcat 容器的 webapps 目录下,执行下面的指令:

# docker cp probe.war b246cd1:/usr/local/tomcat8.5.66/webapps

Docker 安装 tomcat 部署 jenkins 最新版系统_apache_19

(还有另一种方法:使用挂载方式 #挂载的意思就是在宿主机上解压一个tomcat把这里面的webapps目录映射到docker内的tomcat容器中的webapps目录,这样直接把war包发送到宿主机的tomcat的webapps下面,docker的tomcat的webapps会共用此目录下的文件) 我上面是使用手动的方式 Copy 操作的。


war 包 Copy 到 tomcat 服务后,稍等几分钟,war 包会自动解析开,到时候就可以访问 probe 来监控管理 tomcat 服务了。

Docker 安装 tomcat 部署 jenkins 最新版系统_jdk_20

到此,Docker 里安装 tomcat 服务就顺利安装完成了。

准备好 jenkins.war 包,也可以按 probe.war  包的部署一样,直接 Copy 进容器指定目录下就可以了。

下面我将使用 probe 管理系统进行发布 jenkins.war 包到 tomcat 服务器进步部署。

Docker 安装 tomcat 部署 jenkins 最新版系统_tomcat_21

选择最新的 war 包,然后点击 Deploy 按钮,等待几秒后就完成了部署。

Docker 安装 tomcat 部署 jenkins 最新版系统_jenkins_22

如上图所示, Jenkins v2.277.4   最新版本已部署完成,点击进行访问。

Docker 安装 tomcat 部署 jenkins 最新版系统_jdk_23

可以看到 Jenkins 系统正常运行了,按提示操作完成设置。

Docker 安装 tomcat 部署 jenkins 最新版系统_jdk_24

自定义选择设置

Docker 安装 tomcat 部署 jenkins 最新版系统_tomcat_25

设置完成,就成功登录到 Jenkins 系统了,到此,也全部完成 Docker 安装 tomcat 部署 jenkins 最新版系统。