当前位置: 首页 > news >正文

怎样在设计网站做图赚钱高端猎头公司排名

怎样在设计网站做图赚钱,高端猎头公司排名,wordpress鼠标悬停图片,wordpress 群文章目录 Compose简介安装和卸载步骤核心概念compose文件两要素 使用步骤Compose常用命令微服务测试本地编码打包编写Dockerfile文件构建镜像 不使用Compose调试使用Compose调试WordPress测试验证增量更新 Compose简介 ​ docker建议我们每一个容器中只运行一个服务,因为docke… 文章目录 Compose简介安装和卸载步骤核心概念compose文件两要素 使用步骤Compose常用命令微服务测试本地编码打包编写Dockerfile文件构建镜像 不使用Compose调试使用Compose调试WordPress测试验证增量更新 Compose简介 ​ docker建议我们每一个容器中只运行一个服务,因为docker容器本身占用资源极少,所以最好是将每个服务单独的分割开来。但是这样我们又面临以下问题 ​ 如果我需要同时部署好多个服务,那么每个服务需要单独编写Dockerfile文件、构建镜像、构建容器等步骤非常麻烦。所以docker官方给我们提供了docker-compose多服务部署的工具。 例如要实现一个Web微服务项目除了Web服务容器本身往往还需要再加上后端的数据库mysql服务容器、redis服务器、注册中心eureka、负载均衡容器等。 Compose允许用户通过一个单独的docker-compose.yml模板文件YAML 格式来定义一组相关联的应用容器为一个项目project。可以很容易地用一个配置文件定义一个多容器的应用然后使用一条指令安装这个应用的所有依赖完成构建。Docker-Compose解决了容器与容器之间如何管理编排的问题。 ​ 总结Compose是Docker官方的开源项目负责实现对Docker容器集群的快速编排可以管理多个Docker容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml写好多个容器之间的调用关系。然后只要一个命令就能同时启动/关闭这些容器。 官方网站https://docs.docker.com/compose/ 安装和卸载步骤 一般情况下安装docker engine时会自带docker compose。docker engine的详细安装可看博客2.核心概念与安装配置 手动安装composehttps://docs.docker.com/compose/install/ 核心概念 compose文件 ​ Compose文件的默认路径是在当前工作目录中的compose.yaml推荐或compose.yml文件。为早期版本的向后兼容性Compose也支持docker-compose.yaml和docker-compose.yml。如果这两个文件都存在Compose更倾向于使用规范的compose.yaml。 两要素 服务service 一个个应用容器实例比如各种微服务、mysql容器、nginx容器、redis容器等 工程project 由一组关联的应用容器组成的一个完整业务单元在docker-compose.yml文件中定义。 使用步骤 编写Dockerfile定义各个微服务应用并构建出对应的镜像文件使用docker-compose.yml定义一个完整的业务单元安排好整体应用中的各个容器服务执行docker compose up命令启动运行整个应用程序完成一件部署上线 Compose常用命令 docker-compose -h # 查看帮助docker-compose up # 启动所有docker-compose服务docker-compose up -d # 启动所有docker-compose服务并后台运行docker-compose down # 停止并删除容器、网络、卷、镜像。docker-compose exec yml里面的服务id # 进入容器实例内部 docker-compose exec docker-compose.yml文件中写的服务id /bin/bashdocker-compose ps # 展示当前docker-compose编排过的运行的所有容器docker-compose top # 展示当前docker-compose编排过的容器进程docker-compose logs yml里面的服务id # 查看容器输出日志docker-compose config # 检查配置docker-compose config -q # 检查配置有问题才有输出docker-compose restart # 重启服务docker-compose start # 启动服务docker-compose stop # 停止服务微服务测试 本地编码 POM文件 ?xml version1.0 encodingUTF-8? 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/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion2.5.6/version!--version2.3.10.RELEASE/version--relativePath/ !-- lookup parent from repository --/parentgroupIdcom.zyn.docker/groupIdartifactIddocker_boot/artifactIdversion0.0.1-SNAPSHOT/versionpropertiesproject.build.sourceEncodingUTF-8/project.build.sourceEncodingmaven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.targetjunit.version4.12/junit.versionlog4j.version1.2.17/log4j.versionlombok.version1.16.18/lombok.versionmysql.version5.1.47/mysql.versiondruid.version1.1.16/druid.versionmapper.version4.1.5/mapper.versionmybatis.spring.boot.version1.3.0/mybatis.spring.boot.version/propertiesdependencies!--guava Google 开源的 Guava 中自带的布隆过滤器--dependencygroupIdcom.google.guava/groupIdartifactIdguava/artifactIdversion23.0/version/dependency!-- redisson --dependencygroupIdorg.redisson/groupIdartifactIdredisson/artifactIdversion3.13.4/version/dependency!--SpringBoot通用依赖模块--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactId/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependency!--swagger2--dependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger2/artifactIdversion2.9.2/version/dependencydependencygroupIdio.springfox/groupIdartifactIdspringfox-swagger-ui/artifactIdversion2.9.2/version/dependency!--SpringBoot与Redis整合依赖--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-data-redis/artifactId/dependency!--springCache--dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-cache/artifactId/dependency!--springCache连接池依赖包--dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-pool2/artifactId/dependency!-- jedis --dependencygroupIdredis.clients/groupIdartifactIdjedis/artifactIdversion3.1.0/version/dependency!--Mysql数据库驱动--dependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.47/version/dependency!--SpringBoot集成druid连接池--dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.1.10/version/dependencydependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion${druid.version}/version/dependency!--mybatis和springboot整合--dependencygroupIdorg.mybatis.spring.boot/groupIdartifactIdmybatis-spring-boot-starter/artifactIdversion${mybatis.spring.boot.version}/version/dependency!-- 添加springboot对amqp的支持 --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-amqp/artifactId/dependencydependencygroupIdcommons-codec/groupIdartifactIdcommons-codec/artifactIdversion1.10/version/dependency!--通用基础配置junit/devtools/test/log4j/lombok/hutool--!--hutool--dependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion5.2.3/version/dependencydependencygroupIdjunit/groupIdartifactIdjunit/artifactIdversion${junit.version}/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-devtools/artifactIdscoperuntime/scopeoptionaltrue/optional/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopetest/scope/dependencydependencygroupIdlog4j/groupIdartifactIdlog4j/artifactIdversion${log4j.version}/version/dependencydependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion${lombok.version}/versionoptionaltrue/optional/dependency!--persistence--dependencygroupIdjavax.persistence/groupIdartifactIdpersistence-api/artifactIdversion1.0.2/version/dependency!--通用Mapper--dependencygroupIdtk.mybatis/groupIdartifactIdmapper/artifactIdversion${mapper.version}/version/dependency/dependenciesbuildpluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-resources-plugin/artifactIdversion3.1.0/version/plugin/plugins/build/projectapplication.yaml server.port6001 # alibaba.druid???? spring.datasource.typecom.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-namecom.mysql.jdbc.Driver spring.datasource.urljdbc:mysql://192.168.10.101:3306/boot_docker?useUnicodetruecharacterEncodingutf-8useSSLfalse spring.datasource.usernameroot spring.datasource.password123456 spring.datasource.druid.test-while-idlefalse # redis???? spring.redis.database0 spring.redis.host192.168.10.101 spring.redis.port6379 spring.redis.password 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.mapper-locationsclasspath:mapper/*.xml mybatis.type-aliases-packagecom.wang.docker.entities # swagger spring.swagger2.enabledtrue主启动类 package com.wang.docker;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import tk.mybatis.spring.annotation.MapperScan;/*** ClassName: DockerBootApplication* Description* Version 1.0*/ SpringBootApplication MapperScan(com.wang.docker.mapper) //import tk.mybatis.spring.annotation.MapperScan; public class DockerBootApplication {public static void main(String[] args) {SpringApplication.run(DockerBootApplication.class,args);} }业务类如下 config配置类 RedisConfig.java package com.wang.docker.config;import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer;import java.io.Serializable;/*** ClassName: RedisConfig* Description* Version 1.0*/Configuration Slf4j public class RedisConfig {/*** param lettuceConnectionFactory* return** redis序列化的工具配置类下面这个请一定开启配置* 127.0.0.1:6379 keys ** 1) ord:102 序列化过* 2) \xac\xed\x00\x05t\x00\aord:102 野生没有序列化过*/Beanpublic RedisTemplateString, Serializable redisTemplate(LettuceConnectionFactory lettuceConnectionFactory){RedisTemplateString,Serializable redisTemplate new RedisTemplate();redisTemplate.setConnectionFactory(lettuceConnectionFactory);//设置key序列化方式stringredisTemplate.setKeySerializer(new StringRedisSerializer());//设置value的序列化方式jsonredisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer());redisTemplate.setHashKeySerializer(new StringRedisSerializer());redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());redisTemplate.afterPropertiesSet();return redisTemplate;}}SwaggerConfig.java package com.wang.docker.config;import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2;import java.text.SimpleDateFormat; import java.util.Date;/*** ClassName: SwaggerConfig* Description* Version 1.0*/ Configuration EnableSwagger2 public class SwaggerConfig {Value(${spring.swagger2.enabled})private Boolean enabled;Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(enabled).select().apis(RequestHandlerSelectors.basePackage(com.wang.docker)) //你自己的package.paths(PathSelectors.any()).build();}public ApiInfo apiInfo() {return new ApiInfoBuilder().title(aaaa测试\tnew SimpleDateFormat(yyyy-MM-dd).format(new Date())).description(docker-compose).version(1.0).termsOfServiceUrl(https://www.atguigu.com/).build();}}entity user.java package com.wang.docker.entities;import java.io.Serializable; import java.util.Date; import javax.persistence.*;Table(name t_user) public class User implements Serializable {IdGeneratedValue(generator JDBC)private Integer id;/*** 用户名*/private String username;/*** 密码*/private String password;/*** 性别 0女 1男*/private Byte sex;/*** 删除标志默认0不删除1删除*/private Byte deleted;/*** 更新时间*/Column(name update_time)private Date updateTime;/*** 创建时间*/Column(name create_time)private Date createTime;/*** return id*/public Integer getId() {return id;}/*** param id*/public void setId(Integer id) {this.id id;}/*** 获取用户名** return username - 用户名*/public String getUsername() {return username;}/*** 设置用户名** param username 用户名*/public void setUsername(String username) {this.username username;}/*** 获取密码** return password - 密码*/public String getPassword() {return password;}/*** 设置密码** param password 密码*/public void setPassword(String password) {this.password password;}/*** 获取性别 0女 1男** return sex - 性别 0女 1男*/public Byte getSex() {return sex;}/*** 设置性别 0女 1男** param sex 性别 0女 1男*/public void setSex(Byte sex) {this.sex sex;}/*** 获取删除标志默认0不删除1删除** return deleted - 删除标志默认0不删除1删除*/public Byte getDeleted() {return deleted;}/*** 设置删除标志默认0不删除1删除** param deleted 删除标志默认0不删除1删除*/public void setDeleted(Byte deleted) {this.deleted deleted;}/*** 获取更新时间** return update_time - 更新时间*/public Date getUpdateTime() {return updateTime;}/*** 设置更新时间** param updateTime 更新时间*/public void setUpdateTime(Date updateTime) {this.updateTime updateTime;}/*** 获取创建时间** return create_time - 创建时间*/public Date getCreateTime() {return createTime;}/*** 设置创建时间** param createTime 创建时间*/public void setCreateTime(Date createTime) {this.createTime createTime;} } UserDTO.java package com.wang.docker.entities;import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.io.Serializable; import java.util.Date; /*** ClassName: UserDTO* Description* Version 1.0*/ AllArgsConstructor NoArgsConstructor Data ApiModel(value 用户信息) public class UserDTO implements Serializable {ApiModelProperty(value 用户ID)private Integer id;ApiModelProperty(value 用户名)private String username;ApiModelProperty(value 密码)private String password;ApiModelProperty(value 性别 0女 1男 )private Byte sex;ApiModelProperty(value 删除标志默认0不删除1删除)private Byte deleted;ApiModelProperty(value 更新时间)private Date updateTime;ApiModelProperty(value 创建时间)private Date createTime;/*** return id*/public Integer getId() {return id;}/*** param id*/public void setId(Integer id) {this.id id;}/*** 获取用户名** return username - 用户名*/public String getUsername() {return username;}/*** 设置用户名** param username 用户名*/public void setUsername(String username) {this.username username;}/*** 获取密码** return password - 密码*/public String getPassword() {return password;}/*** 设置密码** param password 密码*/public void setPassword(String password) {this.password password;}/*** 获取性别 0女 1男** return sex - 性别 0女 1男*/public Byte getSex() {return sex;}/*** 设置性别 0女 1男** param sex 性别 0女 1男*/public void setSex(Byte sex) {this.sex sex;}/*** 获取删除标志默认0不删除1删除** return deleted - 删除标志默认0不删除1删除*/public Byte getDeleted() {return deleted;}/*** 设置删除标志默认0不删除1删除** param deleted 删除标志默认0不删除1删除*/public void setDeleted(Byte deleted) {this.deleted deleted;}/*** 获取更新时间** return update_time - 更新时间*/public Date getUpdateTime() {return updateTime;}/*** 设置更新时间** param updateTime 更新时间*/public void setUpdateTime(Date updateTime) {this.updateTime updateTime;}/*** 获取创建时间** return create_time - 创建时间*/public Date getCreateTime() {return createTime;}/*** 设置创建时间** param createTime 创建时间*/public void setCreateTime(Date createTime) {this.createTime createTime;}Overridepublic String toString() {return User{ id id , username username \ , password password \ , sex sex };} } mapper UserMapper.java package com.wang.docker.mapper;import com.wang.docker.entities.User; import tk.mybatis.mapper.common.Mapper;public interface UserMapper extends MapperUser { }src\main\resources路径下新建mapper文件夹并新增UserMapper.xml ?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.wang.docker.mapper.UserMapperresultMap idBaseResultMap typecom.wang.docker.entities.User!--WARNING - mbg.generated--id columnid jdbcTypeINTEGER propertyid /result columnusername jdbcTypeVARCHAR propertyusername /result columnpassword jdbcTypeVARCHAR propertypassword /result columnsex jdbcTypeTINYINT propertysex /result columndeleted jdbcTypeTINYINT propertydeleted /result columnupdate_time jdbcTypeTIMESTAMP propertyupdateTime /result columncreate_time jdbcTypeTIMESTAMP propertycreateTime //resultMap /mapperservice UserService.java package com.wang.docker.service;import com.wang.docker.entities.User; import com.wang.docker.mapper.UserMapper; import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service;import javax.annotation.Resource;/*** ClassName: UserService* Description* Version 1.0*/ Service Slf4j public class UserService {public static final String CACHE_KEY_USER user:;Resourceprivate UserMapper userMapper;Resourceprivate RedisTemplate redisTemplate;/*** addUser* param user*/public void addUser(User user){//1 先插入mysql并成功int i userMapper.insertSelective(user);if(i 0){//2 需要再次查询一下mysql将数据捞回来并okuser userMapper.selectByPrimaryKey(user.getId());//3 将捞出来的user存进redis完成新增功能的数据一致性。String key CACHE_KEY_USERuser.getId();redisTemplate.opsForValue().set(key,user);}}/*** findUserById* param id* return*/public User findUserById(Integer id){User user null;String key CACHE_KEY_USERid;//1 先从redis里面查询如果有直接返回结果如果没有再去查询mysqluser (User) redisTemplate.opsForValue().get(key);if(user null){//2 redis里面无继续查询mysqluser userMapper.selectByPrimaryKey(id);if(user null){//3.1 redismysql 都无数据//你具体细化防止多次穿透我们规定记录下导致穿透的这个key回写redisreturn user;}else{//3.2 mysql有需要将数据写回redis保证下一次的缓存命中率redisTemplate.opsForValue().set(key,user);}}return user;} } controller UserController.java package com.wang.docker.controller;import cn.hutool.core.util.IdUtil; import com.wang.docker.entities.User; import com.wang.docker.service.UserService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*;import javax.annotation.Resource; import java.util.Random;/*** ClassName: UserController* Description* Author:我自己* Date: 2022/8/6 16:16* Version 1.0*/ RestController Api(description 用户User接口) Slf4j public class UserController {Resourceprivate UserService userService;ApiOperation(数据库新增3条记录)RequestMapping(value /user/add,method RequestMethod.POST)public void addUser(){for (int i 1; i 3; i) {User user new User();user.setUsername(wfci);user.setPassword(IdUtil.simpleUUID().substring(0,6));user.setSex((byte) new Random().nextInt(2));userService.addUser(user);}}/* ApiOperation(删除1条记录)RequestMapping(value /user/delete/{id},method RequestMethod.POST)public void deleteUser(PathVariable Integer id){userService.deleteUser(id);}ApiOperation(修改1条记录)RequestMapping(value /user/update,method RequestMethod.POST)public void updateUser(RequestBody UserDTO userDTO){User user new User();BeanUtils.copyProperties(userDTO,user);userService.updateUser(user);}*/ApiOperation(查询1条记录)RequestMapping(value /user/find/{id},method RequestMethod.GET)public User findUserById(PathVariable Integer id){return userService.findUserById(id);}} 打包 maven打包上传至服务器的/mydocker目录下 编写Dockerfile文件 # 基础镜像使用javaFROM java:8# 作者MAINTAINER zzyy# VOLUME 指定临时文件目录为/tmp在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmpVOLUME /tmp# 将jar包添加到容器中并更名为zzyy_docker.jarADD docker_boot-0.0.1-SNAPSHOT.jar zzyy_docker.jar# 运行jar包RUN bash -c touch /zzyy_docker.jarENTRYPOINT [java,-jar,/zzyy_docker.jar]#暴露6001端口作为微服务EXPOSE 6001构建镜像 docker build -t zzyy_docker:1.6 .不使用Compose调试 启动mysql容器 docker run -p 3306:3306 --name mysql57 --privilegedtrue -v /zzyyuse/mysql/conf:/etc/mysql/conf.d -v /zzyyuse/mysql/logs:/logs -v /zzyyuse/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD123456 -d mysql:5.7进入容器创建boot_docker数据库 docker exec -it mysql57 /bin/bash mysql -uroot -p123456 create database boot_docker; use boot_docker; CREATE TABLE t_user (id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,username VARCHAR(50) NOT NULL DEFAULT COMMENT 用户名,password VARCHAR(50) NOT NULL DEFAULT COMMENT 密码,sex TINYINT(4) NOT NULL DEFAULT 0 COMMENT 性别 0女 1男 ,deleted TINYINT(4) UNSIGNED NOT NULL DEFAULT 0 COMMENT 删除标志默认0不删除1删除,update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间,create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,PRIMARY KEY (id) ) ENGINEINNODB AUTO_INCREMENT1 DEFAULT CHARSETutf8mb4 COMMENT用户表;启动redis容器 docker run -p 6379:6379 --name redis608 --privilegedtrue -v /app/redis/redis.conf:/etc/redis/redis.conf -v /app/redis/data:/data -d redis:6.0.8 redis-server /etc/redis/redis.conf本地启动主启动类程序测试 http://localhost:6001/swagger-ui.html#/执行两个测试接口均正常可以读写到mysql数据并且redis内数据正常。 微服务容器 docker run -d -p 6001:6001 zzyy_docker:1.6访问微服务 http://192.168.10.101:6001/swagger-ui.html#/swagger页面、接口均正常。 上述过程运行成功。但是存在以下几个问题 先后顺序要求固定先mysqlredis后微服务多个run命令需要启动容器容器间的启停或宕机有可能导致IP地址对应容器变化导致服务异常。可以使用自定义网络通过域名进行解决。 接下来通过使用compose解决上述问题。 使用Compose调试 在mycompose目录下创建docker-compose.yml version: 3services:microService:image: zzyy_docker:1.7container_name: ms01ports:- 6001:6001volumes:- /app/microService:/datanetworks: - atguigu_net depends_on: - redis- mysqlredis:image: redis:6.0.8ports:- 6379:6379volumes:- /app/redis/redis.conf:/etc/redis/redis.conf- /app/redis/data:/datanetworks: - atguigu_netcommand: redis-server /etc/redis/redis.confmysql:image: mysql:5.7environment:MYSQL_ROOT_PASSWORD: 123456MYSQL_ALLOW_EMPTY_PASSWORD: noMYSQL_DATABASE: db2021MYSQL_USER: zzyyMYSQL_PASSWORD: zzyy123ports:- 3306:3306volumes:- /app/mysql/db:/var/lib/mysql- /app/mysql/conf/my.cnf:/etc/my.cnf- /app/mysql/init:/docker-entrypoint-initdb.dnetworks:- atguigu_netcommand: --default-authentication-pluginmysql_native_password #解决外部无法访问networks: atguigu_net: 修改docker_boot中application.yaml文件主要将IP换为服务名称。通过服务名访问与IP无关。 server.port6001 # alibaba.druid???? spring.datasource.typecom.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-namecom.mysql.jdbc.Driver #spring.datasource.urljdbc:mysql://192.168.10.101:3306/boot_docker?useUnicodetruecharacterEncodingutf-8useSSLfalse spring.datasource.urljdbc:mysql://mysql:3306/boot_docker?useUnicodetruecharacterEncodingutf-8useSSLfalse spring.datasource.usernameroot spring.datasource.password123456 spring.datasource.druid.test-while-idlefalse # redis???? spring.redis.database0 #spring.redis.host192.168.10.101 spring.redis.hostredis spring.redis.port6379 spring.redis.password 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.mapper-locationsclasspath:mapper/*.xml mybatis.type-aliases-packagecom.wang.docker.entities # swagger spring.swagger2.enledtrue 重新打包上传服务器的mycompose目录 在mycompose目录下编写Dockerfile文件 # 基础镜像使用javaFROM java:8# 作者MAINTAINER zzyy# VOLUME 指定临时文件目录为/tmp在主机/var/lib/docker目录下创建了一个临时文件并链接到容器的/tmpVOLUME /tmp# 将jar包添加到容器中并更名为zzyy_docker.jarADD docker_boot-0.0.1-SNAPSHOT.jar zzyy_docker.jar# 运行jar包RUN bash -c touch /zzyy_docker.jarENTRYPOINT [java,-jar,/zzyy_docker.jar]#暴露6001端口作为微服务EXPOSE 6001构建镜像 docker build -t zzyy_docker:1.7 .通过compose启动各个容器 docker compose up #后台 docker compose up -d进入mysql容器新建数据库和表 docker exec -it 容器实例id /bin/bash mysql -uroot -p create database boot_docker; use boot_docker; CREATE TABLE t_user (id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,username VARCHAR(50) NOT NULL DEFAULT COMMENT 用户名,password VARCHAR(50) NOT NULL DEFAULT COMMENT 密码,sex TINYINT(4) NOT NULL DEFAULT 0 COMMENT 性别 0女 1男 ,deleted TINYINT(4) UNSIGNED NOT NULL DEFAULT 0 COMMENT 删除标志默认0不删除1删除,update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 更新时间,create_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 创建时间,PRIMARY KEY (id) ) ENGINEINNODB AUTO_INCREMENT1 DEFAULT CHARSETutf8mb4 COMMENT用户表;测试通过 停止 docker compose stopWordPress测试验证增量更新 不用compose #创建网络 docker network create blog#启动mysql docker run -d -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD123456 \ -e MYSQL_DATABASEwordpress \ -v /app/mysql-data:/var/lib/mysql \ -v /app/myconf:/etc/mysql/conf.d \ --restart always --name mysql \ --network blog \ mysql:8.0docker run -d -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD123456 \ -e MYSQL_DATABASEwordpress \ -v mysql-data:/var/lib/mysql \ -v /app/myconf:/etc/mysql/conf.d \ --restart always --name mysql \ --network blog \ mysql:8.0#启动wordpress docker run -d -p 8080:80 \ -e WORDPRESS_DB_HOSTmysql \ -e WORDPRESS_DB_USERroot \ -e WORDPRESS_DB_PASSWORD123456 \ -e WORDPRESS_DB_NAMEwordpress \ -v wordpress:/var/www/html \ --restart always --name wordpress-app \ --network blog \ wordpress:latest使用compose name: myblog services:mysql:container_name: mysqlimage: mysql:8.0ports:- 3306:3306environment:- MYSQL_ROOT_PASSWORD123456- MYSQL_DATABASEwordpressvolumes:- mysql-data:/var/lib/mysql- /app/myconf:/etc/mysql/conf.drestart: alwaysnetworks:- blogwordpress:image: wordpressports:- 8080:80environment:WORDPRESS_DB_HOST: mysqlWORDPRESS_DB_USER: rootWORDPRESS_DB_PASSWORD: 123456WORDPRESS_DB_NAME: wordpressvolumes:- wordpress:/var/www/htmlrestart: alwaysnetworks:- blogdepends_on:- mysqlvolumes:mysql-data:wordpress:networks:blog:特点 增量更新修改8080为80重新启动 修改 Docker Compose 文件。重新启动应用。只会触发修改项的重新启动。 数据不删 默认就算down了容器所有挂载的卷不会被移除。比较安全 强制删除数据卷 docker compose -f compose.yaml down --rmi all -v
http://www.hkea.cn/news/14477532/

相关文章:

  • 仿中国化妆品网站模板wordpress备案信息代码
  • 仿土巴兔网站建设源码如何做网站
  • 如何建设一个电商网站网站做导航设计的作用是什么
  • 自助建站模板使用方法秦淮html5响应式网站
  • 广东平台网站建设怎么做网站认证
  • 茶叶外贸网站建设阳江招聘网站哪里最好找工作
  • 建设工程职称 在哪个网站重庆有哪些公司
  • 公司网站建设费用明细表个人网站的搭建步骤
  • 新手建立企业网站流程郑州建筑工程有限公司
  • 加强网站建设 统计局自己做网站能关联支付宝吗
  • 中企网站建设网站托管服务合同范本
  • 南通做网站哪家好小程序制作后维护成本
  • 吴江区经济开发区规建设局网站借贷网站建设
  • 新都兴城建设投资有限公司网站外国网站上做Task
  • 哈尔滨住房建设发展集团网站做网站全部乱码怎么办
  • 免费空间做淘宝客网站网站排名推广软件
  • 设计网站推荐html云南营销网站建设
  • 洛阳瀍河建设局网站wordpress no.7高级版
  • wordpress手机网站插件装修设计公司电话
  • 网站建设 知乎网站后台乱码
  • 一般公司网站用什么域名套餐个人业务网站制作
  • 新乡手机网站建设江苏宏澄建设有限公司网站
  • 深圳家居网站建设网络营销的常用策略
  • 乐清开发网站公司word做网站框架
  • 用手机做电影网站百家号如何给网站做推广
  • wordpress演示站网站建设哪家好公司
  • 免费网站建设合同书网上购物网站网站建设分析
  • google地图嵌入网站电子商务管理系统
  • 想开个网站做外贸怎么做设计图的网站
  • 佛山网站建设公司排名榜淘宝联盟网上的网站建设