一、安装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安装成功了
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新建数据库,分别将数据存储在不同服务的数据库中