建外文网站,湖南省建设信息网站查询,做网站除了域名还要买什么,wordpress发布的文章404目录
一、前提说明
二、简单的Docker容器部署案例
1. Dockerfile 配置
2. docker-compose.yml 配置
3. application.properties 配置
4. pom.xml 配置
5. 上传文件
6. 创建基础Docker镜像
7. docker-compose.yml编排
8. 停止并删除容器编排 一、前提说明
在配置好Do…目录
一、前提说明
二、简单的Docker容器部署案例
1. Dockerfile 配置
2. docker-compose.yml 配置
3. application.properties 配置
4. pom.xml 配置
5. 上传文件
6. 创建基础Docker镜像
7. docker-compose.yml编排
8. 停止并删除容器编排 一、前提说明
在配置好Docker和Docker Compose之后部署一个JavaWeb项目。
使用到 spingbootmysqlredis
二、简单的Docker容器部署案例
1. Dockerfile 配置
# 基于那个镜像使用 java
# FROM openjdk:8-oracle
FROM java:8# 作者
MAINTAINER cj# 在主机 /var/lib/docker 目录下创建一个临时文件并链接到容器的 /tmp
VOLUME /tmp# 将jar包添加到容器中并命名为 springboot_docker.jar
ADD docker_boot-0.0.1-SNAPSHOT.jar /springboot_docker.jar# 运行jar包
RUN bash -c touch /springboot_docker.jar
ENTRYPOINT [java, -jar, /springboot_docker.jar]# SpringBoot项目配置的端口号为 19311需要将 19311 暴露出去
EXPOSE 19311
2. docker-compose.yml 配置
# docker-compose文件版本号
version: 3# 配置各个容器服务
services:# 定义名为 microService 的服务microService:# 使用 springboot_docker:1.1 镜像作为容器image: springboot_docker:1.1# 设置容器的名称为 ms01container_name: ms01 # 容器名称如果不指定会生成一个服务名加上前缀的容器名# 将容器内部端口 19311 映射到宿主机端口 19311ports:- 19311:19311# 挂载宿主机的 /app/microService 目录到容器内的 /data 目录volumes:- /app/microService:/data# 连接到名为 springboot_network 的自定义网络networks:- springboot_network# 定义 microService 服务依赖的其他服务depends_on:- redis- mysql# 定义名为 redis 的服务redis:# 使用 redis:6.0.8 镜像作为容器image: redis:6.0.8# 主机端口:容器内部端口ports:- 6479:6379# 挂载宿主机的 redis 配置文件和数据目录到容器内volumes:- /app/redis/redis.conf:/etc/redis/redis.conf- /app/redis/data:/data# 连接到名为 springboot_network 的自定义网络networks:- springboot_network# 指定容器启动命令为 redis-server /etc/redis/redis.confcommand: redis-server /etc/redis/redis.conf# 定义名为 mysql 的服务mysql:# 使用 mysql:latest 镜像作为容器image: mysql:latest# 设置 MySQL 的环境变量environment:MYSQL_ROOT_PASSWORD: 123456MYSQL_ALLOW_EMPTY_PASSWORD: noMYSQL_DATABASE: boot_dockerMYSQL_USER: cjMYSQL_PASSWORD: 123456# 将容器内部端口 3306 映射到宿主机端口 3406# 主机端口:容器内部端口ports:- 3406:3306# 挂载宿主机的 MySQL 数据库文件、配置文件和初始化脚本到容器内volumes:- /app/mysql/db:/var/lib/mysql- /app/mysql/conf/my.cnf:/etc/my.cnf- /app/mysql/init:/docker-entrypoint-initdb.d# 连接到名为 springboot_network 的自定义网络networks:- springboot_network# 指定容器启动命令为 --default-authentication-pluginmysql_native_passwordcommand: --default-authentication-pluginmysql_native_password # 解决外部无法访问# 定义自定义网络 springboot_network
networks:springboot_network:3. application.properties 配置
# 设置服务器端口号为 19311
server.port19311
# Alibaba Druid 数据库连接池配置
# 设置数据源类型为 Alibaba Druid 数据库连接池
spring.datasource.typecom.alibaba.druid.pool.DruidDataSource
# 设置数据库驱动类名
spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver
# 设置数据库连接地址、字符集等相关信息
#spring.datasource.urljdbc:mysql://192.168.153.133:3307/boot_docker?serverTimezoneGMT%2B8useSSLfalsecharacterEncodingutf-8allowPublicKeyRetrievaltrue
# 将IP更换成容器名
spring.datasource.urljdbc:mysql://mysql:3306/boot_docker?serverTimezoneGMT%2B8useSSLfalsecharacterEncodingutf-8allowPublicKeyRetrievaltrue
# 设置数据库用户名
spring.datasource.usernameroot
# 设置数据库密码
spring.datasource.password123456
# 设置 Druid 连接池的 test-while-idle 属性为 false表示在空闲时不测试连接是否有效
spring.datasource.druid.test-while-idlefalse
# Redis 缓存配置
# 设置 Redis 数据库编号
spring.redis.database0
# 设置 Redis 主机地址
#spring.redis.host192.168.153.133
# 将IP更换成容器名
spring.redis.hostredis
# 设置 Redis 端口号
spring.redis.port6379
# 设置 Redis 密码
spring.redis.password123456
# 设置 Redis 连接池的一些属性
spring.redis.lettuce.pool.max-active8
spring.redis.lettuce.pool.max-wait-1ms
spring.redis.lettuce.pool.max-idle8
spring.redis.lettuce.pool.min-idle0
# MyBatis 配置
# 设置 MyBatis 的映射文件路径
mybatis.mapper-locationsclasspath:mapper/*.xml
# 设置 MyBatis 实体类别名所在的包路径
mybatis.type-aliases-packagecom.wang.docker.entities
# Swagger 配置
# 启用 Swagger2 API 文档生成
spring.swagger2.enabledtrue4. pom.xml 配置
?xml version1.0 encodingUTF-8?
!-- Maven项目的POM文件用于管理项目的依赖和构建配置 --
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersion!-- 父项目配置 --parent!-- 使用Spring Boot Starter Parent作为父项目统一管理依赖版本 --groupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.6/versionrelativePath/ !-- 从仓库中查找父项目 --/parent!-- 项目的基本信息 --groupIdcom.atguigu.docker/groupIdartifactIddocker_boot/artifactIdversion0.0.1-SNAPSHOT/version!-- 定义项目使用的属性如编码、编译版本等 --propertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingmaven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.target!-- 定义各个依赖版本 --junit.version4.12/junit.versionlog4j.version1.2.17/log4j.versionlombok.version1.16.18/lombok.versionmysql.version8.0.30/mysql.versiondruid.version1.1.17/druid.versionmapper.version4.1.5/mapper.versionmybatis.spring.boot.version1.3.0/mybatis.spring.boot.versionswagger.version2.9.2/swagger.version/properties!-- 项目依赖配置 --dependencies!-- GuavaGoogle开源的Guava中自带的布隆过滤器 --dependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion23.0/version/dependency!-- RedissonRedis Java客户端库 --dependencygroupIdorg.redisson/groupIdartifactIdredisson/artifactIdversion3.13.4/version/dependency!-- Spring Boot Starter WebSpring Boot的Web起步依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependency!-- Spring Boot Starter ActuatorSpring Boot的监控与管理依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependency!-- Swagger2API文档生成工具 --dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger2/artifactIdversion${swagger.version}/version/dependencydependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger-ui/artifactIdversion${swagger.version}/version/dependency!-- Spring Boot Starter Data RedisSpring Boot集成Redis依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!-- Spring Boot Starter CacheSpring Boot缓存起步依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-cache/artifactId/dependency!-- Apache Commons Pool2通用对象池 --dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactId/dependency!-- JedisRedis的Java客户端库 --dependencygroupIdredis.clients/groupIdartifactIdjedis/artifactIdversion3.1.0/version/dependency!-- MySQL Connector JavaMySQL数据库驱动 --dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion${mysql.version}/version/dependency!-- Druid Spring Boot StarterSpring Boot集成Druid连接池 --dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion${druid.version}/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion${druid.version}/version/dependency!-- MyBatis Spring Boot StarterSpring Boot集成MyBatis依赖 --dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion${mybatis.spring.boot.version}/version/dependency!-- Apache Commons Codec通用编解码库 --dependencygroupIdcommons-codec/groupIdartifactIdcommons-codec/artifactIdversion1.10/version/dependency!-- HutoolJava工具类库 --dependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion5.2.3/version/dependency!-- JUnitJava单元测试框架 --dependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion${junit.version}/version/dependency!-- Spring Boot DevToolsSpring Boot开发工具用于热部署等 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scopeoptionaltrue/optional/dependency!-- Spring Boot Starter TestSpring Boot测试起步依赖 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependency!-- Log4jJava日志框架 --dependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion${log4j.version}/version/dependency!-- LombokJava简化代码库 --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion${lombok.version}/versionoptionaltrue/optional/dependency!-- Javax Persistence APIJava持久化API --dependencygroupIdjavax.persistence/groupIdartifactIdpersistence-api/artifactIdversion1.0.2/version/dependency!-- 通用MapperMyBatis通用Mapper --dependencygroupIdtk.mybatis/groupIdartifactIdmapper/artifactIdversion${mapper.version}/version/dependency/dependencies!-- 项目构建配置 --buildplugins!-- Spring Boot Maven Plugin用于打包Spring Boot应用 --plugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/plugin!-- Maven Resources PluginMaven资源处理插件 --plugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-resources-plugin/artifactIdversion3.1.0/version/plugin/plugins/build/project
5. 上传文件
上传文件到CentOS中创建一个mydocker的文件夹将打包的jar、Dockerfile、docker-compose.yml放在同一级目录中。如同 ps以下命令需要在包含jar包、Dockerfile、docker-compose.yml目录下进行不然可能会出现找不到文件的错误
6. 创建基础Docker镜像
docker build -t springboot_docker:1.1 .
7. docker-compose.yml编排
编写完成docker-compose.yml后进行语法检查
# 进行语法检查
docker-compose config -q
如果语法检查没有任何问题进行创建、启动
docker-compose up -d
8. 停止并删除容器编排
docker-compose down