通常我们启动或者发布一个web应用,离不开的就是tomcat和mysql,下面我们就以docker上安装这两个为例来展开来讲。
1.docker上安装tomcat9和配置
启动一个tomcat
docker run -d -p 8989:8080 71b53e8b8f8c
进入到运行的容器中
docker exec -it a26a652efc66 /bin/bash
宿主机里home目录下新建tomcat目录,复制容器里conf,webapps到宿主机
docker cp a26a652efc66:/usr/local/tomcat/conf /home/tomcat/
docker cp a26a652efc66:/usr/local/tomcat/webapps /home/tomcat/
把容器里的tomcat里的webapp,logs,conf挂载到宿主机tomcat目录下,方便上传代码,同步持久化日志,以及方便配置tomcat;关掉容器,启动容器;
docker run -d --name mytomcat9 -p 80:8080 -v /home/tomcat/conf/:/usr/local/tomcat/conf/ -v /home/tomcat/webapps/:/usr/local/tomcat/webapps/ -v /home/tomcat/logs/:/usr/local/tomcat/logs/ 71b53e8b8f8c
这时候如果我们有war包的话可以直接放到我们webapps目录下面,且是热加载自动生成项目文件夹
另外如果我们需要在浏览器上除去项目名字的话,需做以下配置tomcat server.xml
<Context path="" docBase="/usr/local/tomcat/webapps/项目名称" debug="0" reloadable="true" />
配置好后我们重启一下容器是配置生效
docker stop c9ba2f44e4dc
docker start c9ba2f44e4dc
此时我们就可以不带项目名访问我们的项目了,但会报错,因为我们还没安装和配置mysql
2.docker上安装mysql5.7和配置
首先拉取mysql到宿主机
docker pull mysql:5.7
运行mysql(这里要加上密码)
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 a4fdfd462add
docker exec -it 7f848a3f0f04 /bin/bash
容器上mysql配置文件在/etc/mysql/conf.d/
数据在/var/lib/mysql/
日志在/var/log(日志路径是可以进行手动配置的)
下面宿主机里home目录下新建mysql目录,复制容器里conf,webapps到宿主机
docker cp 7f848a3f0f04:/etc/mysql/conf.d /home/mysql/
docker cp 7f848a3f0f04:/var/log /home/mysql/
docker cp 7f848a3f0f04:/var/lib/mysql /home/mysql/
接下来我们重启启动一个带挂载的mysql
docker stop 7f848a3f0f04
把容器里的mysql里的conf.d,log,mysql挂载到宿主机tomcat目录下,方便上传代码,同步持久化日志,以及方便配置mysql;关掉容器,启动容器;
docker run --name cpmysql57 -p 3386:3306 -d -v /etc/mysql/conf.d/:/home/mysql/conf/ -v /var/log:/home/mysql/log/ -v /var/lib/mysql/:/home/mysql/mysql/ -e MYSQL_ROOT_PASSWORD=123456 a4fdfd462add
此时mysql运行成功,我们可以用工具进行连接一下容器里面的mysql
注意这时候如果我们项目中的数据库连接地址需要进行对应的修改,这里不是我们的服务器ip而是要写docker里的mysql容器所在的虚拟IP地址;容器间通信IP;
docker inspect 53bf2c9ede30
换成下面的ip地址即可
这里简单说明一下,因为这里是单个服务,必须连接到容器内ip地址,如何是docker集群的话可以连接服务器ip即可。
这里我们介绍了项目中常用的tomcat和mysql的安装,觉得有帮助的话麻烦点个赞和有问题欢迎留言评论,谢谢!