栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Docker-Compose部署tomcat与redis及mysql

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Docker-Compose部署tomcat与redis及mysql

部署流程:
  1. 导入镜像
  2. 安装docker-compose容器编排工具
  3. 创建配置文件
  4. 运行
  5. 验证

步骤:

技巧:镜像也可不事先下载,执行命令会自动下载,但是那样会很慢!!!

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可以使用

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/462082.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号