一、安装vmbox和vagrant

1、下载地址

Vagrant: https://releases.hashicorp.com/vagrant/2.2.5/vagrant_2.2.5_x86_64.msi

==VirtualBox: == https://download.virtualbox.org/virtualbox/6.0.10/VirtualBox-6.0.10-132072-Win.exe

记得要开启 cpu 虚拟化

安装好vmbox和vagrant后,cmd输入vagrant,如果出现命令等,就说明vagrant安装成功了
vagrant

2、vagrant给vmbox创建虚拟机

中科大镜像站,如: https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box
启动一个 CentOS 7 的虚拟机,可以快速下载centos7

vagrant init centos7 https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box

在这里插入图片描述
或者也可以直接输入

vagrant init centos/7

3、启动虚拟机

直接cmd进入vagrant所在目录即可,因为我们初始化时,将vagrant文件放在了C:\Users\13754>目录下
先去官方下载镜像,再去启动容器,过程较慢,下载完成后,vmbox界面就会出现centos虚拟机

//启动虚拟机 或 直接在vmbox界面操作均可
vagrant up

4、退出命令,因为vmbox已经启动好了

ctrl c

5、连接到虚拟机

//vagrant连接到虚拟机
vagrant ssh

//退出虚拟机
exit

6、虚拟机网络设置

网络地址转换,端口转发
在这里插入图片描述
1、windows系统安装了 virtualbox
2、virtualbox 里面是 linux 系统
3、linux 系统里又会安装 mysql、redis等软件
4、mysql和redis 也有自己的默认端口,例如 3306、6379
5、virtualbox 需要将自身linux系统里的软件的端口和windows系统的端口进行绑定,例如访问windows的 3333端口就等于访问的是linux的3306端口
6、virtualbox的linux每安装好一个软件后,都需要在virtualbox设置端口转发规则
在这里插入图片描述
7、但是这样做太麻烦了,我们会给虚拟机一个固定的ip地址
8、windows和linux虚拟机互相 ping 通,这样linux安装好软件,windows
直接用ip地址访问就好了

虚拟机是使用vagrant创建的,所以直接配置 Vagrantfile 文件即可

查看windows本机上的 virtualbox ip地址
在这里插入图片描述
vagrant自动生成的文件
在这里插入图片描述
修改vagrant文件,配置 windows主机上的 virtualbox端口
在这里插入图片描述

# 连接虚拟机
C:\Users\13754>vagrant ssh
Last login: Wed Jun  2 06:28:49 2021 from 10.0.2.2

#退出虚拟机
[vagrant@localhost ~]$ exit
logout
Connection to 127.0.0.1 closed.

# 重启虚拟机
C:\Users\13754>vagrant reload

在这里插入图片描述
测试windows主机和虚拟机之间是否可以互相ping通

查看windows本机的 ip
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、linux虚拟机安装docker

docker官网文档:
https://docs.docker.com/engine/install/centos/

安装docker依赖的包

因为登陆用户当前是 vagrant,不是root用户,所以命令要用 sudo

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

告诉linuxdocker去哪里安装

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

安装docker引擎

sudo yum install docker-ce docker-ce-cli containerd.io

到此docker安装完毕,开始启动docker
启动docker

sudo systemctl start docker

以查看docker版本的方式检查docker是否启动

docker -v

检查虚拟机下载的镜像列表,此时是空列表

[vagrant@localhost ~]$ sudo docker images
REPOSITORY   TAG       IMAGE ID   CREATED   SIZE
[vagrant@localhost ~]$

docker设置开机自启动,虚拟机启动docker自启动

[vagrant@localhost ~]$ sudo systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[vagrant@localhost ~]$

配置docker阿里云镜像加速,默认是从docker hub下载镜像,国外网站下载较慢

阿里云镜像服务网址:
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://8yssw3d6.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

在这里插入图片描述
到此就完成了阿里云镜像加速操作,以后下载镜像会直接到阿里云镜像服务里下载,速度加快

1、docker安装mysql

在这里插入图片描述
下载mysql镜像,不写版本默认是最新

sudo docker pull mysql:5.7

检查当前下载的所有镜像

sudo docker images

sudo作用就是拥有root权限,但每次用sudo太麻烦,直接切换为root用户

[vagrant@localhost ~]$ su root
#密码默认是vagrant
Password: 
[root@localhost vagrant]# whoami
root
[root@localhost vagrant]#

启动mysql容器

docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

查看docker正在运行中的容器,检查mysql是否安装成功

docker ps

连接mysql
在这里插入图片描述
进入mysql容器,验证mysql容器是一个完整的linux

docker exec -it mysql /bin/bash

在这里插入图片描述
修改配置文件

vi /mydata/mysql/conf/my.cnf

配置内容

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve

重启mysql

docker restart mysql

进入mysql容器

docker exec -it mysql /bin/bash

查看是否修改成功

cat /etc/mysql/my.cnf

2、docker安装redis

1、下载redis镜像,默认最新版本

docker pull redis

在这里插入图片描述
2、创建配置文件

mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf

3、启动容器

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

4、运行redis

docker exec -it redis redis-cli

5、开启 aof 持久化

vi /mydata/redis/conf/redis.conf
# 添加如下内容
appendonly yes

6、重启redis

docker restart redis

在这里插入图片描述
7、设置Docker启动服务也启动

docker update mysql --restart=always

docker update redis --restart=always

三、配置git

1、安装配置git

1、配置git作者信息

13754@DESKTOP-BMA0VDI MINGW32 ~/Desktop
$ git config --global user.name "muzhen"

13754@DESKTOP-BMA0VDI MINGW32 ~/Desktop
$ git config --global user.email "376536577@qq.com"

13754@DESKTOP-BMA0VDI MINGW32 ~/Desktop

2、配置ssh免密登录

#输入命令后连续三次回车
13754@DESKTOP-BMA0VDI MINGW32 ~/Desktop
$ ssh-keygen -t rsa -C "376536577@qq.com"
Generating public/private rsa key pair.

Enter file in which to save the key (/c/Users/13754/.ssh/id_rsa): Created directory '/c/Users/13754/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/13754/.ssh/id_rsa.
Your public key has been saved in /c/Users/13754/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:t1eyJa+HlF0F6UyU2/5rFlmmW8xkCa5k1DFv+5V0pvg 376536577@qq.com
The key's randomart image is:
+---[RSA 3072]----+
|            .+++ |
|           . o* .|
|          . .+.*=|
|           o o*+@|
|        S + =o+%+|
|         . ooOooB|
|          ..o.Eo+|
|           ...oo.|
|            ..o..|
+----[SHA256]-----+

13754@DESKTOP-BMA0VDI MINGW32 ~/Desktop

3、查看ssh公钥

13754@DESKTOP-BMA0VDI MINGW32 ~/Desktop
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDzqI5Xn47P8cFGkh9jb+wKvICTHcYNDJ4//G1kD26T+TNlL7b5vbdzNfZcuLUp/A8ZF6CxJJyhEUhHEd7XP++DSymoZEDZ7TpifQtUvhw5t7AB7HhWdmZDXyt4C5xgFFSeALjNrmHlZ5Qby/JdEZaIQqOvH7q8/JzRhmMHQ4r+eaa8mfsGzU5C9LqhuYtHKCwxHvAEHmmQBbk7pE7CnSpgqjk0cTp4hPP/2NlO+p40+ogBck1TqrlKM1yWyVMrY7p8I+Nj+rjYfXK8hTyH8383eOSD7RgrLuo7MR+3Hl1KYYZ7d73Lt/E1qSMe/tL4EYnn17V3NiPHDiSf//DCWoiSA/soNSr25IEu0lAxsQC7Q5a+Q/LTLoMKWXXtryDVhrqUkEYA5xbhMi4MJk0OAdkSzGKNB0ge2/iYMjf5GdfTefyk3snSRUwQu1M0j/CVPLyeul3otK3x0UBN1rYjQOAjOEsTY6V8sKPYbqdsNZgydjBYH+PyrCb7R+sF92QiUhU= 376536577@qq.com

13754@DESKTOP-BMA0VDI MINGW32 ~/Desktop

在这里插入图片描述
4、登录进入gitee,在设置里找到ssh key,将.pub的文件黏贴进去,使用 ssh -T git@gitee.com 测试是否成功即可
在这里插入图片描述

13754@DESKTOP-BMA0VDI MINGW32 ~/Desktop
$ ssh -T git@gitee.com
The authenticity of host 'gitee.com (212.64.62.183)' can't be established.
ECDSA key fingerprint is SHA256:FQGC9Kn/eye1W8icdBgrQp+KkGYoFgbVr17bmjey0Wc.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'gitee.com,212.64.62.183' (ECDSA) to the list of known hosts.
Hi 廉小雨! You've successfully authenticated, but GITEE.COM does not provide shell access.

13754@DESKTOP-BMA0VDI MINGW32 ~/Desktop

5、码云仓库配置
在这里插入图片描述

2、新建项目微服务

商品服务,仓储服务、订单服务、优惠券服务、用户服务

1、在码云创建好的仓库创建项目
在这里插入图片描述
在这里插入图片描述
配置后点击clone即可从码云仓库生成项目,此项目就是从码云下载的

2、生成第一个服务,商品服务

选择springinitilizer moudle
在这里插入图片描述
3、配置moudle
在这里插入图片描述
4、选择pom,课程boot版本是2.1.8
在这里插入图片描述
其他服务同上;

5、随便复制一个任意项目的pom文件黏贴到gulimall总工程下

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.lian.gulimall</groupId>
    <artifactId>gulimall</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>gulimall</name>
    <description>谷粒商城-聚合服务</description>
    <!--pom代表是父类聚合项目-->
    <packaging>pom</packaging>
    <!--声明自己的孩子们-->
    <modules>
        <module>gulimall-order</module>
        <module>gulimall-coupon</module>
        <module>gulimall-member</module>
        <module>gulimall-product</module>
        <module>gulimall-ware</module>
    </modules>

</project>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
6、修改总项目的.gitignore模板,将小项目里的垃圾文件忽略掉
在这里插入图片描述
忽略掉这些文件后,提交git时就不会提交到仓库了,我们给码云只提交源码和pom文件

2、数据库初始化

数据库地址:https://share.weiyun.com/RjvNIVbE

navicat新建数据库,分别将数据存储在不同服务的数据库
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐