1. 安装ContOS7操作系统

2. 安装docker

参考博客:https://www.icode9.com/content-3-660803.html
docker文档:https://docs.docker.com/get-docker/

  1. 卸载旧版本

    1. $ sudo yum remove docker \
    2. docker-client \
    3. docker-client-latest \
    4. docker-common \
    5. docker-latest \
    6. docker-latest-logrotate \
    7. docker-logrotate \
    8. docker-engine
  2. 安装yum-utils软件包

    1. $ sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2
  3. 设置稳定的仓库

    1. $ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  4. 安装最新版本的 Docker Engine-Community 和 containerd

    1. $ sudo yum install docker-ce docker-ce-cli containerd.io
  5. 启动及查看版本 ```shell $ sudo systemctl start docker

$ docker version

  1. 6. 设置开机启动
  2. ```shell
  3. $ sudo systemctl enable docker

3.给docker设置阿里云镜像加速

https://cr.console.aliyun.com/cn-qingdao/instances/mirrors
image.png

  1. sudo mkdir -p /etc/docker
  2. sudo tee /etc/docker/daemon.json <<-'EOF'
  3. {
  4. "registry-mirrors": ["https://l6ka2w45.mirror.aliyuncs.com"]
  5. }
  6. EOF
  7. sudo systemctl daemon-reload
  8. sudo systemctl restart docker

4.使用docker安装mysql并启动及有关配置

1、下载

  1. docker pull mysql:5.7

2、启动

  1. docker run -p 3306:3306 --name mysql \
  2. -v /mydata/mysql/log:/var/log/mysql \
  3. -v /mydata/mysql/data:/var/lib/mysql \
  4. -v /mydata/mysql/conf:/etc/mysql \
  5. -e MYSQL_ROOT_PASSWORD=root \
  6. -d mysql:5.7

命令说明:
-p 3306:3306:将容器的3306端口映射到主机的3306端口
-v 将mysql容器内文件挂载到外部Linux系统中
-e MYSQL_ROOT_PASSWORD=root:初始化root用户的密码为root
-d: 后台运行容器,并返回容器ID

3、修改mysql字符编码

  1. vi /mydata/mysql/conf/my.conf

进入到相关配置文件填写以下内容

  1. [client]
  2. default-character-set=utf8
  3. [mysql]
  4. default-character-set=utf8
  5. [mysqld]
  6. init_connect='SET collation_connection = utf8_unicode_ci'
  7. init_connect='SET NAMES utf8'
  8. character-set-server=utf8
  9. collation-server=utf8_unicode_ci
  10. skip-character-set-client-handshake
  11. skip-name-resolve
  1. #查看docker已经启动的程序
  2. [root@shc mysql]# docker ps
  3. CO#NTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  4. b166cdf71ece mysql:5.7 "docker-entrypoint.s…" 9 minutes ago Up 9 minutes 0.0.0.0:3306->3306/tcp, 33060/tcp mysql
  5. #重新启动mysql
  6. [root@shc mysql]# docker restart mysql
  7. mysql
  8. #进入mysql容器
  9. [root@shc mysql]# docker exec -it mysql /bin/bash
  10. #进入mysql目录
  11. root@b166cdf71ece:/# cd /etc/mysql/
  12. #查看目录下文件
  13. root@b166cdf71ece:/etc/mysql# ls
  14. my.conf
  15. #抓取my.conf文件
  16. root@b166cdf71ece:/etc/mysql# cat my.conf
  17. #发现刚才改的文件已经修改好了
  18. [client]
  19. default-character-set=utf8
  20. [mysql]
  21. default-character-set=utf8
  22. [mysqld]
  23. init_connect='SET collation_connection = utf8_unicode_ci'
  24. init_connect='SET NAMES utf8'
  25. character-set-server=utf8
  26. collation-server=utf8_unicode_ci
  27. skip-character-set-client-handshake
  28. skip-name-resolve
  29. #退出容器
  30. root@b166cdf71ece:/etc/mysql# exit;
  31. exit

修改mysql时区

  1. #进入mysql容器
  2. [root@shc mysql]# docker exec -it mysql /bin/bash
  3. #进入数据库
  4. $ mysql -u root -p
  5. #查看时区
  6. SELECT TIMEDIFF(NOW(), UTC_TIMESTAMP);
  7. +--------------------------------+
  8. | TIMEDIFF(NOW(), UTC_TIMESTAMP) |
  9. +--------------------------------+
  10. | 00:00:00 |
  11. +--------------------------------+
  12. #如果是中国标准时间, 会输出 08:00:00。
  13. #查看 MySQL 当前时间、当前时区:
  14. select curtime();
  15. show variables like "%time_zone%";
  16. #修改时区:
  17. set global time_zone = '+8:00'; # 修改MySQL全局时区为北京时间,即我们所在的东8区
  18. set time_zone = '+8:00'; # 修改当前会话时区

每次启动docker自动启动mysql

  1. docker update mysql --restart=always

5.安装redis

docker run -p 6379:6379 —name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
-d redis redis-server /etc/redis/redis.conf
///

  1. # 如果直接挂载的话docker会以为挂载的是一个目录,所以我们先创建一个文件然后再挂载
  2. mkdir -p /mydata/redis/conf
  3. touch /mydata/redis/conf/redis.conf
  4. docker pull redis
  5. docker run -p 6379:6379 --name redis \
  6. -v /mydata/redis/data:/data \
  7. -v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
  8. -d redis redis-server /etc/redis/redis.conf
  9. # 直接进去redis客户端。
  10. docker exec -it redis redis-cli

默认是不持久化的。在配置文件中输入appendonly yes,就可以aof持久化了。修改完docker restart redis,docker -it redis redis-cli

  1. vim /mydata/redis/conf/redis.conf
  2. # 插入下面内容
  3. appendonly yes
  4. 保存
  5. docker restart redis

设置redis容器在docker启动的时候启动

  1. docker update redis --restart=always

安装Redis客户端并连接服务器上的redis
image.png
每次启动docker自动启动redis

  1. docker update redis --restart=always

6.环境-项目结构创建&提交到码云

项目搭建

在码云创建仓库,并使用仓库HTTPS在Idea中创建项目
Git

搭建微服务模块

商品服务、仓储服务、订单服务、优惠券服务、用户服务
共同:

  • Spring框架
  • 工具导入 : web、openfeign(该工具用于微服务与微服务之间相互调用)
  • 包名统一 : com.atguigu.gulimall.xxx (product/order/ware/coupon/member)
  • 模块名 : gulimall-xxx (product/order/ware/coupon/member)

例:微服务-商城服务模块
image.png
image.png
image.png
image.png
image.png

添加配置

在主目录下添加pom.xml文件,将模块整合

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  4. <modelVersion>4.0.0</modelVersion>
  5. <parent>
  6. <groupId>org.springframework.boot</groupId>
  7. <artifactId>spring-boot-starter-parent</artifactId>
  8. <version>2.4.3</version>
  9. <relativePath/> <!-- lookup parent from repository -->
  10. </parent>
  11. <groupId>com.atguigu.gulimall</groupId>
  12. <artifactId>gulimall-ware</artifactId>
  13. <version>0.0.1-SNAPSHOT</version>
  14. <name>gulimall-ware</name>
  15. <description>谷粒商城仓储服务</description>
  16. <properties>
  17. <java.version>1.8</java.version>
  18. <spring-cloud.version>2020.0.1</spring-cloud.version>
  19. </properties>
  20. <dependencies>
  21. <dependency>
  22. <groupId>org.springframework.boot</groupId>
  23. <artifactId>spring-boot-starter-web</artifactId>
  24. </dependency>
  25. <dependency>
  26. <groupId>org.springframework.cloud</groupId>
  27. <artifactId>spring-cloud-starter-openfeign</artifactId>
  28. </dependency>
  29. <dependency>
  30. <groupId>org.springframework.boot</groupId>
  31. <artifactId>spring-boot-starter-test</artifactId>
  32. <scope>test</scope>
  33. </dependency>
  34. </dependencies>
  35. <dependencyManagement>
  36. <dependencies>
  37. <dependency>
  38. <groupId>org.springframework.cloud</groupId>
  39. <artifactId>spring-cloud-dependencies</artifactId>
  40. <version>${spring-cloud.version}</version>
  41. <type>pom</type>
  42. <scope>import</scope>
  43. </dependency>
  44. </dependencies>
  45. </dependencyManagement>
  46. <build>
  47. <plugins>
  48. <plugin>
  49. <groupId>org.springframework.boot</groupId>
  50. <artifactId>spring-boot-maven-plugin</artifactId>
  51. </plugin>
  52. </plugins>
  53. </build>
  54. </project>

将此pom文件添加到Maven中
image.png
添加插件Git
image.png
在主目录下配置上传到码云的过虑文件
image.png
Ctrl+k 打开
image.png