文章目录

  • ①. virtualBox - 管理虚拟机
  • ②. vagrant - 安装虚拟机
  • ③. 虚拟机安装 - docker
  • ④. docker上安装mysql
  • ⑤. docker上安装redis
  • ⑥. 从gitee初始化一个微服务
  • ⑦. 从0搭建各个微服务项目
  • ⑧. 数据库坏境初始化
  • ⑨. 高级篇 - 安装Nginx

①. virtualBox - 管理虚拟机

  • ①. 下载、安装virtualBox:https://www.virtualbox.org/ ,要开启cpu虚拟化(6.0.12)

  • ②. 安装virtualBox需要开启虚拟化、图解(系统开启虚拟机默认)

  • ③. 百度云地址:
    链接:https://pan.baidu.com/s/1MuxoSD53YW30pnj-egY71Q
    提取码:1234

②. vagrant - 安装虚拟机

  • ①. 下载和安装vagrant
  1. Vagrant下载
  2. vagrant官网镜像
  3. 安装vagrant后,进入cmd,我们敲vagrent有信息就证明安装成功了
  4. 注意:VirualBox会与包括带不限于如下软件冲突,需要卸载这些软件,然后重启电脑。冲突的软件:红蜘蛛、360、净网大师(有可能)等
  • ②. 打开window cmd窗口,运行vagrant init centos/7,即可初始化一个centos7系统,运行vagrant up即可启动虚拟机。系统root用户的密码是vagrant(会出现很慢下载的清空)
    (下好了vargant,如果安装centos7很慢,可以用下面的连接替换初始化的那一步:vagrant init centos7 https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box。然后在执行vagrant up,就很快了,这个是国内的镜像地址。vagrant up,中间执行出现异常的话,多试几次)

  • ③. 关于vagrant命令
    (注意:下次使用也可以直接vagrant up直接启动,但要确保当前目录在C:/用户/ 文件夹下,他下面有一个Vagrantfile,不过我们也可以配置环境变量)

 (1). 下载cenots7:vagrant init centos/7(2). 启动虚拟机:vagrant up(3). 连接虚拟机:vagrant ssh(4). 重新加载:vagrant reload(5). 查看ip:ip addr (linux)(6). 查看当前用户: whoami (linux)
  • ④. 虚拟机网络设置(实现虚拟机和本地的window ip互通)
  1. Virtualbox使用的网络方式是网络地址转换NAT(端口转发),如果其它主机要访问虚拟机,必须由windows端口如3333转发给虚拟机端口如3306。这样每在linux里安一个软件都要进行端口映射,不方便,(也可以在virualBox里挨个设置)。我们想要给虚拟机一个固定的ip地址,windows和虚拟机可以互相ping通)
  2. 编辑Vagrantfile文件,修改其中的config.vm.network “private_network”,ip:“192.168.56.10”


3. 在虚拟机下和window下互相ping各自的ip

  • ⑤. 使用SSH免密登录(以后可以使用提供的ssh连接工具进行连接)
Vagrant ssh进去系统之后
vi /etc/ssh/sshd_config
修改 PasswordAuthentication 将no改成yes
重启服务 service sshd restart
这样以后我们就可以使用xshell进行免密登录了

  • ⑥. 如果出现虚拟机都ping不通baidu的情况(我的本地坏境是可以ping通的)

③. 虚拟机安装 - docker

  • ①. 卸载之前的docker
 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine
  • ②. 安装必须依赖的包
 sudo yum install -y yum-utils \device-mapper-persistent-data \lvm2
  • ③. 告诉linux中docker的地址(配置镜像)
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
# 设置开机自启动
sudo systemctl enable docker
  • ⑤. 配置镜像加速
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://opvvjpc5.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
  • ⑥. docker命令:
 (1). 查看docker的版本:docker -v(2). 设置开机自启动:sudo systemctl enable docker(3). 查看镜像:sudo docker images (4). 设置docker里面容器自启动:sudo docker update redis --restart=always

④. docker上安装mysql

  • ①. 拉取mysql的镜像
sudo docker pull mysql:5.7
  • ②. 创建mysql容器并开启
    -p 3306:3306:将宿主机的3306端口映射到容器的3306端口
    -v /mydata/mysql/log:/var/log/mysql:在宿主机下创建log文件夹映射到容器的mysql下
    -v /mydata/mysql/data:/var/lib/mysql :将配置文件夹挂载到主机
    -v /mydata/mysql/conf:/etc/mysql :将配置问价挂载到主机
    -e MYSQL_ROOT_PASSWORD=root :初始化root用户的密码
    -d 表示后台运行
 # --name指定容器名字 -v目录挂载 -p指定端口映射  -e设置mysql参数 -d后台运行
sudo 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

  • ③. 查看mysql是否启动,并进入终端
docker ps
docker exec -it mysql/容器ID /bin/bash 使用守护式进程
  • ④. 修改mysql的统一编码为utf-8
 # 因为有目录映射,所以我们可以直接在镜像外执行
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-resolvedocker restart mysql
  • ⑤. 连接mysql进行测试:
  • ⑥. 设置mysql开机自启 : docker update mysql --restart=always

⑤. docker上安装redis

  • ①. 安装镜像
sudo docker pull redis
  • ②. 有坑
    (docker run -p…有坑:如果直接挂载的话docker会以为挂载的是一个目录,在虚拟机中我们先创建一个文件然后再挂载)
# 在虚拟机中
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
  • ③. 运行redis
  1. -d redis redis-server /etc/redis/redis.conf:在后台启动redis服务,以etc/redis/redis.conf启动都会读取这个文件
  2. 注意:/etc/redis/redis.conf,只有/etc/redis没有redis.conf、所以需要在前面先创建redis.conf
docker run -p 6379:6379 --name redis \
-v /mydata/redis/data:/data \
-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
# 下面这几句话的意思是,每次启动的时候都使用的/etc/redis/redis.conf的配置启动的
-d redis redis-server /etc/redis/redis.conf
  • ④. 直接进去redis客户端
docker exec -it redis redis-cli
[root@localhost vagrant]# docker exec -it redis redis-cli
127.0.0.1:6379> set name tang
OK
127.0.0.1:6379> get name
"tang"
127.0.0.1:6379>
  • ⑤. 配置持久化、配置密码(选配)
 vim /mydata/redis/conf/redis.conf# 插入下面内容appendonly yes保存
 vim /mydata/redis/conf/redis.conf# 插入下面内容requirepass root保存
  • ⑥. 重启redis
 docker restart redis
  • ⑦. 测试
  • ⑧. 设置redis开机自启动:sudo docker update redis --restart=always

⑥. 从gitee初始化一个微服务

  • ①. 设置模板也要勾上
  • ②. 创建好之后如图所示
  • ③. 在IDEA中导入项目

⑦. 从0搭建各个微服务项目

  • ①. IDEA然后New Module–Spring Initializer–com.atguigu.gulimall,Artifact填gulimall-product。Next - 选择web(web开发),springcloud routing里选中openFeign(rpc调用)

  • ②. 依次创建出以下服务
    (商品服务product、存储服务ware、订单服务order、优惠券服务coupon、用户服务member)

  • ③. 共同点
    导入web和openFeign
    group:com.atguigu.gulimall
    Artifact:gulimall-XXX
    每一个服务,包名com.atguigu.gulimall.XXX{product/order/ware/coupon/member}
    模块名:gulimall-XXX

  • ④. 然后右下角显示了springboot的service选项,选择它

  • ⑤. 从某个项目粘贴个pom.xml粘贴到项目目录,修改它

<?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.atguigu.gulimall</groupId><artifactId>gulimall</artifactId><version>0.0.1-SNAPSHOT</version><name>gulimall</name><description>聚合服务</description><packaging>pom</packaging><modules><module>gulimall-product</module><module>gulimall-ware</module><module>gulimall-order</module><module>gulimall-coupon</module><module>gulimall-member</module></modules>
</project>
  • ⑥. 修改总项目的.gitignore,把小项目里的垃圾文件在提交的时候忽略掉,比如HELP.md
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
.mvn/wrapper/maven-wrapper.jar**/mvnw
**/mvnw.cmd
**/.mvn
**/target/.idea**/.gitignore
  • ⑦. 在maven窗口刷新,并点击+号,找到刚才的pom.xml添加进来,发现多了个root。这样比如运行root的clean命令,其他项目也一起clean了

  • ⑧. 提交项目到git(初始化项目)

⑧. 数据库坏境初始化

  • ①. 进入数据库工具,进行一个连接测试
  • ②. 依次创建出如下的数据库脚本
    (utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据,java程序中将报SQL异常)

gulimall_oms
gulimall_pms
gulimall_sms
gulimall_ums
gulimall_wms

⑨. 高级篇 - 安装Nginx

  • ①. 随便启动一个nginx实例,只是为了复制出配置
docker run -p80:80 --name nginx -d nginx:1.10
  • ②. 将容器内的配置文件拷贝到/mydata/nginx/conf/ 下
mkdir -p /mydata/nginx/html
mkdir -p /mydata/nginx/logs
# 这个命令是在 /mydata/ 下执行的
docker container cp nginx:/etc/nginx .
# 别忘了后面有个点
# 由于拷贝完成后会在config中存在一个nginx文件夹,所以需要将它的内容移动到conf中
# 在mydata/nginx/下创建一个conf文件夹
mkdir conf
[root@localhost mydata]# mv nginx conf
[root@localhost mydata]# mkdir nginx
[root@localhost mydata]# mv conf  nginx/
[root@localhost mydata]# ls
elasticsearch  mysql  nginx  redis
[root@localhost mydata]# cd nginx/
[root@localhost nginx]# ls
conf
[root@localhost nginx]# mkdir -p /mydata/nginx/html
[root@localhost nginx]# mkdir -p /mydata/nginx/logs
[root@localhost nginx]# ls
conf  html  logs
  • ③. 终止原容器:
docker stop nginx
  • ④. 执行命令删除原容器:
docker rm nginx
  • ⑤. 建新的Nginx,执行以下命令
docker run -p 80:80 --name nginx \-v /mydata/nginx/html:/usr/share/nginx/html \-v /mydata/nginx/logs:/var/log/nginx \-v /mydata/nginx/conf/:/etc/nginx \-d nginx:1.10
  • ⑥. 设置开机启动nginx
docker update nginx --restart=always
  • ⑦. 创建“/mydata/nginx/html/index.html”文件,测试是否能够正常访问
echo '<h2>hello nginx!</h2>' >index.html
  • ⑧. 访问:http://nginx所在主机的IP:80/index.html

商城项目02_环境搭建、安装VAGRANT、DOCKER、MYSQL、REDIS、从0搭建各个微服务项目、数据库初始化、安装NGINX相关推荐

  1. IDEA集成Docker插件实现一键自动打包部署微服务项目

    一. 前言 大家在自己玩微服务项目的时候,动辄十几个服务,每次修改逐一部署繁琐不说也会浪费越来越多时间,所以本篇整理通过一次性配置实现一键部署微服务,实现真正所谓的一劳永逸. 二. 配置服务器 1. ...

  2. 微服务项目的整合与测试

    实验目的 掌握微服务项目的整合使用 掌握Swagger-UI的简单使用 练习内容 1.微服务项目整合 1.1.项目预览 1.1.1.在 https://github.com/shi469391tou/ ...

  3. Spring Cloud Alibaba 大型微服务项目实战

    作者介绍 程序员十三,多年一线开发经验,历任高级开发工程师.后端主程.技术部门主管等职位.同时也是开源项目的爱好者和贡献者.掘金优秀作者.CSDN 博客专家.实体图书作者.专栏作者.视频讲师. 小册介 ...

  4. docker安装+配置镜像+命令操作+数据卷+网络管理+DockerFile+镜像服务+项目部署+[高级使用]

    文章目录 Docker基础 一.Docker介绍 1. 什么是虚拟化 2. 什么是Docker 3. 容器与虚拟机比较 4. Docker优势 5. Docker架构 [1]镜像服务(`Image`) ...

  5. 认证服务器的搭建_SpringCloud搭建的认证中心和资源服务器的微服务项目源码分享...

    本项目基于spring-cloud-starter-oauth2搭建的认证中心和资源服务器的微服务项目,项目不仅仅简单的demo,项目的出发点在于实战应用.本项目为笔者花了不少时间和精力整理出来的,只 ...

  6. Docker Compose配置springboot微服务项目

    [Docker那些事]系列文章 docker 安装 与 卸载 centos Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT ...

  7. docker 完成 redis集群搭建

    [Docker那些事]系列文章 docker 安装 与 卸载 centos Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT ...

  8. 微服务项目部署在docker容器运行

    昨天的一篇微服务项目中涉及到docker部署,今天写一篇关于微服务项目部署在docker容器中运行,使用github上另外一个比较经典的微服务项目piggyMetric,项目的github地址:htt ...

  9. B2C商城项目源码,基于Java开发的高可用分布式B2C商城系统,Java+Spring MVC+Dubbo+Zookeeper+MySQL+Redis+FastDFS+Nginx+Solr

    目录 前言 B2C商城-AIYOU 一.项目总体架构 二.系统软硬件设施总体规划 1.系统服务规划 2.应用服务规划 3.应用系统域名规划 三.系统运行环境构建 四.项目数据库创建 五.项目拉取 六. ...

最新文章

  1. 牵引力教育设计总监解密9大2018潮流UI设计趋向
  2. C++ Multimaps
  3. qt linux实现鼠标位置自动移动,【已解决】qt中鼠标能显示但是无法移动
  4. 选择or不选择苹果的理由
  5. 吴恩达神经网络1-2-2_图神经网络进行药物发现-第1部分
  6. java初学者笔记总结day6
  7. JVM内存溢出时快照转存HeapDump到文件
  8. oracle 主键_mysql 组合索引带主键ID的问题
  9. Qpython实现命令行的贪吃蛇
  10. 解决三星PM981硬盘无法正常安装黑苹果的问题(第一版)
  11. 如何将文档转换为一个链接
  12. PDF文件怎么压缩大小
  13. 【电动车】电动汽车两阶段优化调度策略(Matlab代码实现)
  14. python 爬取链家北京租房信息
  15. 【Android Gradle 插件】自定义 Gradle 插件优化图片 ② ( 压缩 png、jpg 图片 | 使用 pngcrush 压缩工具压缩 png 图片 )
  16. 图像处理用什么神经网络,神经网络图像处理
  17. 宽带连接错误的处理办法
  18. Xv6学习之kinit1
  19. 全国计算机等级考试二级c语言程序设计,全国计算机等级考试二级教程:C语言程序设计(2016年版) pdf epub mobi txt 下载...
  20. mac for smartSVN9 (8,9)破解方法 附smartSvn_keygen工具图文

热门文章

  1. 39页大数据治理运营整体解决方案
  2. 百度网盘会员怎么买最便宜
  3. [Azure]使用Powershell输出某台ARM虚拟机的NSG
  4. QT读写文本文件编码设置
  5. Ubuntu新建用户后使用sudo报错:不在sudoers文件中,此事将被报告
  6. 云化Web IDE,在线开发新模式
  7. 微信小程序 - 数据转excel下载并复制链接
  8. 关于 Vue.js 的那些事儿
  9. 毕业设计--20200228--内网搭建domoticz系统 frp内网穿透实现天猫精灵控制内网设备
  10. 余淼杰老师 经济学原理复习笔记(微观)