Docker-Compose部署tomcat与redis及mysql
Posted Friends of the wind
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker-Compose部署tomcat与redis及mysql相关的知识,希望对你有一定的参考价值。
部署流程:
- 导入镜像
- 安装docker-compose容器编排工具
- 创建配置文件
- 运行
- 验证
步骤:
技巧:镜像也可不事先下载,执行命令会自动下载,但是那样会很慢!!!
1、 导入镜像
提示:实验环境导入前先保证,防火墙关闭,安全策略关闭,docker正常启动;版本不要过高,有些版本部分场景会报错!
docker load -i tomcat163.tar //tomcat镜像
docker load -i mysql5.7.tar //MySQL镜像
docker load -i redis.tar //redis镜像
2、 安装docker-compose容器编排工具
1)移动到命令默认搜索路径并重命名
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
2)赋权
chmod +x docker-compose
3、 创建配置文件
1)创建目录
mkdir /repository
2)进入目录,创建文件
cd /repository/
vim docker-compose.yml
version: "3"
services:
tomcat:
image: hub.c.163.com/library/tomcat
container_name: tomcat
ports:
- "8080:8080"
volumes:
- tomcatwebapps:/usr/local/tomcat/webapps
networks:
- repository
depends_on:
- mysql
- redis
healthcheck:
test: ["CMD","curl","-f","http://localhost"]
interval: 1m30s
timeout: 10s
retries: 3
ulimits:
nproc: 65535
nofile:
soft: 20000
hard: 40000
mysql:
image: mysql:5.7
container_name: mysql
ports:
- "3306:3306"
volumes:
- mysqldata:/var/lib/mysql
- mysqlconf:/etc/mysql
environment:
MYSQL_ROOT_PASSWORD: 123.com
networks:
- repository
redis:
image: redis:5.0.10
container_name: redis
ports:
- "6379:6379"
volumes:
- redisdata:/data
networks:
- repository
command: "redis-server --appendonly yes"
volumes:
tomcatwebapps:
mysqldata:
mysqlconf:
redisdata:
networks:
repository:
释义:
services: #用来书写当前项目中的那些容器、服务
image: hub.c.163.com/library/tomcat #指定使用镜像
container_name: tomcat #指定容器名
ports: #指定端口映射
- "8080:8080"
volumes: #数据卷共享
#- /root/apps:/usr/local/tomcat/webapps#使用自定义路径映射数据卷(事先创建挂载目录)
- tomcatwebapps:/usr/local/tomcat/webapps #使用自动数据卷
networks: #当前服务使用哪个网桥
- tomnet
depends_on: #把下列依赖的服务先启动,自己再启动;体现了容器的编排
- mysql
- redis
healthcheck: #实现docker引擎和容器的心跳检查
test: ["CMD","curl","-f","http://localhost"]
interval: 1m30s
timeout: 10s
retries: 3
ulimits: #修改容器中最大进程数和文件数限制
environment:
MYSQL_ROOT_PASSWORD: 123.com #修改环境信息,改root密码
command: "redis-server --appendonly yes" #容器执行命令
volumes: #声明上面自动数据卷
tomcatwebapps: #声明数据卷名,自动创建项目名开头的卷名
external: #使用自定义外部卷名
true/false #true 需要提前手动创建这个命名的数据卷
mysqldata:
mysqlconf:
redisdata:
networks: #声明服务的网桥
tomnet: #定义项目开头的网桥名,默认类型bridge
external: #是否使用外部提前创建的网桥,true为确定
true
4、 运行docker-compose
常见报错:分两类
一类:缺少代码,提示解析块映射时出错,1行1列;2行3列
解决:
二类:多附加了参数,卷类型不允许这样设置
解决:删除多余参数
成功如下图:
验证:
访问tomcat:
访问redis:
1)windows11软件登录redis创建键值对
2)进入容器,查看到此键值对
访问MySQL:
windows11软件登录MySQL可以使用
以上是关于Docker-Compose部署tomcat与redis及mysql的主要内容,如果未能解决你的问题,请参考以下文章
docker-compose入门示例:一键部署 Nginx+Tomcat+Mysql
Docker Compose部署Nexus3时的docker-compose,yml代码