最近自己在学习docker关联的发布和部署,在各位大神的文章帮助下,成功的构建了一个Docker+Jenkins+Tomcat+SonarQube的代码质量检测和发布的环境,现将过程记录下来,和大家共享。
第一部分:docker环境构筑(我构筑的版本CentOS7+Docker version 20.10.8)
1.确保yum更新到最新
$ sudo yum update
2.卸载旧版本(如果安装过旧版本的话,如果没有安装过,直接跳过此步)
$ sudo yum remove docker docker-common docker-selinux docker-engine
3.安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2
4.设置yum源
$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
5.可以查看所有仓库中所有docker版本,并选择特定版本安装
$ yum list docker-ce --showduplicates | sort -r
6.安装docker
$ sudo yum install docker-ce #由于repo中默认只开启stable仓库,故这里安装的是最新稳定版
$ sudo yum install <FQPN> # 例如:sudo yum install docker-ce-20.10.8.ce
7.启动并加入开机启动
$ sudo systemctl start docker
$ sudo systemctl enable docker
8.验证安装是否成功(有client和service两部分表示docker安装启动都成功了)
$ docker version
第二部分:在docker环境里面,构筑Tomcat环境(我构筑的版本8.5)
1.在docker中安装Tomcat服务
docker run -itd --name tomcat8.5 -p 1890:8080 tomcat:8.5
说明:--name tomcat8.5:是docker image的名字
-p 1890:8080:是端头号的映射,docker容器里面是8080端口,但是通过网页访问的tomcat 的端头号是1890,这个1890可以自己定义
tomcat:8.5:是安装的Tomcat服务的版本,可以根据项目需要,自己定义。
2.访问地址:http://xxx.xxx.xxx.xxx(服务器地址):1890/
效果图:
3.进入tomcat
docker exec -it tomcat8.5 /bin/bash
4.安装vim, 安装过程中会询问是否继续,输入Y敲回车继续安装
apt-get install vim
5.配置tomcat
修改文件,这里修改的是docker里面tomcat容器的文件,所以要执行第3步。
vim /usr/local/tomcat/conf/tomcat-users.xml
修改结果:tomcat用户的密码是tomcat
6.设置IP访问权限
vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
注释掉下面的代码
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
7.重启容器
docker restart tomcat8.5
重复步骤2,应该能出现tomcat管理的界面。
上面是基本步骤,但是如果大家遇到按照上面的操作发现,webapps下面根本没有manager,或者都修改完了,还是找不到tomcat,输入步骤2的URL的时候,报404错误的话,下面是解决方法。
问题原因
直接拉取的tomcat镜像中有一个 webapps 和一个 webapps.dist 文件夹,我们正常的访问情况是 webapps 文件夹,但是,我们直接拉取的镜像里面是空的,什么都没有,所以访问结果就是 404 了。
解决方法
将 webapps 删除,然后将 webapps.dist 改名为 webapps 。
再次访问tomcat就应该可以了。