# springboot **Repository Path**: zheng-kaixuan/springboot ## Basic Information - **Project Name**: springboot - **Description**: 此仓库用来记录一些基于springboot的常用操作的demo - **Primary Language**: Java - **License**: MIT - **Default Branch**: develop - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-04-07 - **Last Updated**: 2025-08-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 介绍 此仓库用来记录一些基于springboot的常见操作的demo ## 内容 1. springboot线程池配置、线程池监控 2. springboot校验手机验证码 redis缓存 ## 软件 ### JDK1.8 1. 官网下载JDK1.8linux的`tar.gz`版本 2. 将文件复制到java目录 3. 通过 `tar -vxf` 文件名解压 4. 配置环境 修改`/etc/profile`文件 ~~~sh export JAVA_HOME=/java/jdk1.8.0_102 export PATH=$JAVA_HOME/bin:$PATH ### docker #### 版本介绍 Docker版本变化说明: Docker从1.13.x版本开始,版本分为企业版EE和社区版CE,版本号也改为按照时间线来发布,比如17.03就是2017年3月。 Docker的linux发行版的软件仓库从以前的https://apt.dockerproject.org和https://yum.dockerproject.org变更为目前的https://download.docker.com, 软件包名字改为docker-ce和docker-ee。 #### 下载与安装 1. 下载docker依赖环境 ~~~sh yum -y install yum-utils device-mapper-persistent-data lvm2 2. 指定docker镜像源 ~~~sh yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 3. 安装docker ~~~sh yum makecache fast yum -y install docker-ce 4. 启动docker并测试 ~~~sh //启动docker服务 systemctl start docker //设置开机自动启动 systemctl enable docker 5. 卸载docker ~~~sh # 查看当前docker状态 systemctl status docker # 停止docker systemctl stop docker # 查看yum安装的docker文件包 yum list installed | grep docker # 查看docker相关的rpm源文件 rpm -qa | grep docker # 删除所有安装的docker文件包 yum -y remove docker.x86_84(其他的包都这样删除) # 再次查看docker相关的rpm源文件 rpm -qa | grep docker # 删除docker的镜像文件 rm -rf /var/lib/docker #### 镜像操作 # 拉取镜像 docker pull 镜像名称 # 查看本地全部镜像 docker images # 删除本地镜像 docker rmi 镜像的标识 # 本地镜像导出 docker save -o 导出的路径 镜像的id # 加载本地的镜像 dokcer load -i 镜像文件 # 修改镜像名称 docker tag 镜像id 新镜像名称:版本 #### 容器操作 # 运行容器 docker run 镜像的标识|镜像名称[:tag] # 常用参数 docker run -d -p 宿主机端口:容器端口 --name 容器名称 镜像的标识|镜像名称[:tag] # -d 代表后台运行容器 # -p 宿主机端口:容器端口 为了映射当前linux的端口和容器的端口 # --name 容器名称 指定容器的名称 docker ps [-qa] # -a 查看所有的容器,包括没有运行的 # -q 只查看容器的标识 # 查看日志 docker logs kibana # 进入容器内部 docker exec -it 容器Id # 重启容器 docker restart 容器Id # 停止镜像 docker stop 容器Id # 删除容器 docker rm 容器Id ### Docker-Compose #### 介绍 Compose 通过一个配置文件来管理多个Docker容器,在配置文件中,所有的容器通过services来定义,然后使用docker-compose脚本来启动,停止和重启应用,和应用中的服务以及所有依赖服务的容器,非常适合组合使用多个容器进行开发的场景。 #### 安装 1. 去github下载docker-compose或者使用如下命令下载 ~~~sh sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.25.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose 2. 设置权限(可执行权限) ~~~sh sudo chmod +x /usr/local/bin/docker-compose 3. 方便操作,配置环境变量 ~~~sh # /etc/profile添加如下命令 export PATH=$JAVA_HOME:/usr/local/bin:$PATH #### 常用命令 > 需要在docker-compose.yml文件所在目录执行 # 拉取镜像并启动容器 docker-compose up -d # 查看容器 docker-compose ps 容器名称 # 容器关闭/开启/重启 docker-compose stop/start/restart #### 管理容器 ##### mysql version: '3.1' services: mysql: restart: always image: daocloud.io/library/mysql:5.7.4 container_name: mysql ports: - 3306:3306 environment: MYSQL_ROOT_PASSWORD: root TZ: Asia/Shanghai volumes: - /opt/docker_mysql_tomcat/mysql_data:/var/lib/mysql tomcat: restart: always image: daocloud.io/library/tomcat:8.5.15-jre8 container_name: tomcat ports: - 8080:8080 environment: TZ: Asia/Shanghai volumes: - /opt/docker_mysql_tomcat/tomcat_webapps:/usr/local/tomcat/webapps - /opt/docker_mysql_tomcat/tomcat_logs:/usr/local/tomcat/logs nginx version: '3.1' services: nginx: restart: always image: daocloud.io/library/nginx:latest container_name: nginx ports: - 80:80 volumes: - /opt/docker_nginx/conf.d:/etc/nginx/conf.d redis version: '3.1' services: redis: image: redis:4.0.1 container_name: redis-label volumes: - /apps/redis/datadir:/data - /apps/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf - /apps/redis/logs:/logs command: redis-server --requirepass yourpass # 两个写入操作 只是为了解决启动后警告 可以去掉 /bin/bash -c "echo 511 > /proc/sys/net/core/somaxconn && echo never > /sys/kernel/mm/transparent_hugepage/enabled && redis-server /usr/local/etc/redis/redis.conf" ports: # 使用宿主机的端口映射到容器的端口 # 宿主机:容器 - 6379:6379 rabbitmq version: '3.1' services: rabbitmq: restart: always image: daocloud.io/library/rabbitmq:management container_name: rabbitmq ports: - 5672:5672 - 15672:15672 volumes: - /opt/docker_rabbitmq/data:/var/lib/rabbitmq es 创建数据卷目录 mkdir /opt/docker_es mkdir /opt/docker_es/data mkdir /opt/docker_es/config mkdir /opt/docker_es/plugins # 目录更改权限 chmod 777 /opt/docker_es/plugins docker-compose.yml内容 version: '3.1' services: elasticsearch: restart: always image: daocloud.io/library/elasticsearch:7.8.0 container_name: elasticsearch ports: - 9200:9200 - 9300:9300 environment: - "discovery.type=single-node" - "ES_JAVA_OPTS=-Xms64m -Xmx256m" volumes: - /opt/docker_elasticsearch/plugins:/usr/share/elasticsearch/plugins - /opt/docker_elasticsearch/config:/usr/share/elasticsearch/config - /opt/docker_elasticsearch/data:/usr/share/elasticsearch/data kibana: restart: always image: daocloud.io/library/kibana:7.8.0 container_name: kibana ports: - 5601:5601 environment: - elasticsearch_url=http://47.97.102.53:9200 depends_on: - elasticsearch 注意 这种方式会发生失败,是因为无法将data与config中的数据写到数据卷(即使数据卷给了最高权限),这个时候需要按照如下方式 1. 去掉yml中的数据卷 2. 运行es 3. 将es内部的数据复制到数据卷 ~~~ sh docker cp elasticsearch:/usr/share/elasticsearch/config /opt/docker_es docker cp elasticsearch:/usr/share/elasticsearch/data /opt/docker_es 4. 补全yml内容 # 阿里云信息