3.项目环境
在这里我们使用的是 Linux 虚拟机来进行搭建这个项目,所以我们选用的是 VirtualBox 里搭建 CentOS 7 。 另外我们没有手动手打搭建 CentOS 7 , 而是采用 vagrant 帮我们自动搭建虚拟机的 Linux 环境。因为 vagrant 能为我们提供便捷,而且容易部署。
3.1.Linux 安装
3.1.1.VirtualBox 安装
- VirtualBox 下载地址
-
- 下载完成后,一键傻瓜式安装
3.1.2. vagrant 安装
vagrant是一个工具,用于创建和部署虚拟化开发环境的。
拿VirtualBox举例,VirtualBox会开放一个创建虚拟机的接口,Vagrant会利用这个接口创建虚拟机,并且通过Vagrant来管理,配置和自动安装虚拟机。
常见命令
命令 | 解释 |
---|---|
vagrant box list | 查看目前已有的box |
vagrant box add | 新增加一个box |
vagrant box remove | 删除指定box |
vagrant init | 初始化配置vagrantfile |
vagrant up | 启动虚拟机 |
vagrant ssh | ssh登录虚拟机 |
vagrant suspend | 挂起虚拟机 |
vagrant reload | 重启虚拟机 |
vagrant halt | 关闭虚拟机 |
vagrant status | 查看虚拟机状态 |
vagrant destroy | 删除虚拟机 |
- vagrant 下载地址 :https://www.vagrantup.com/downloads.html
- 下载
![image-20200430121229403](https://i-blog.csdnimg.cn/blog_migrate/d2789479efe246d84d621ac1242d5d5f.png)
- 一键傻瓜式安装
- 安装完成后,需要重启电脑。 重启之后,我们可以通过命令行输入
vagrant
检验自己是否安装成功
3.1.3 安装 CentOS 7
https://app.vagrantup.com/boxes/search
- 我们到 vagrant 官网查看自己需要安装的镜像。
![image-20200430121909861](https://i-blog.csdnimg.cn/blog_migrate/694ab741a1c2f7421a8462c91830bd59.png)
- 命令行输入
vagrant init centos/7
这一步会为我们在 系统硬盘 下的当前用户下新建一个 Vagrantfile 文件
-
命令行输入
vagrant up
这一步会自动帮我们下载 CentOS 镜像, 需要等待非常漫长的一段时间。
-
**启动 Linux 系统,命令行输入
vagrant ssh
**经过漫长的等待,此时我们已经通过
vagrant
安装了Linux
系统了,在安装系统时,vagrant 已经帮我们搭建好了 SSH 环境,我们通过vagrant ssh
就可以连接上 Linux 系统了。 -
为了避免我们每次都要配置端口转发, vagrant 也有配置,为我们实现端口转发的功能
、
此时我们只需要打开 vagrantfile文件,
然后找到这一行 ,将注释打开,然后将 private_network
的 IP
地址改为 与 VirtualBox Host-Only Network
的ip
地址同一个网段 即可
<img src=https://typora-1301918612.cos.ap-guangzhou.myqcloud.com/undefined/202005/23/111004-560724.png" alt=“image-20200430145937912” style=“zoom:67%;” />
-
修改成功后,重启虚拟机,然后再查询 虚拟机的IP地址
此时的 IP 地址 已经式我们自己设置的 IP地址了
3.2 Docker 安装
3.2.1 Docker 是什么
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
3.2.1.1 Docker的应用场景
- Web 应用的自动化打包和发布。
- 自动化测试和持续集成、发布。
- 在服务型环境中部署和调整数据库或其他的后台应用。
- 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
3.2.1.2 Docker 的优点
Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。借助 Docker,您可以与管理应用程序相同的方式来管理基础架构。通过利用 Docker 的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。
1、快速,一致地交付您的应用程序
Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。
容器非常适合持续集成和持续交付(CI / CD)工作流程,请考虑以下示例方案:
- 您的开发人员在本地编写代码,并使用 Docker 容器与同事共享他们的工作。
- 他们使用 Docker 将其应用程序推送到测试环境中,并执行自动或手动测试。
- 当开发人员发现错误时,他们可以在开发环境中对其进行修复,然后将其重新部署到测试环境中,以进行测试和验证。
- 测试完成后,将修补程序推送给生产环境,就像将更新的镜像推送到生产环境一样简单。
2、响应式部署和扩展
Docker 是基于容器的平台,允许高度可移植的工作负载。Docker 容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。
Docker 的可移植性和轻量级的特性,还可以使您轻松地完成动态管理的工作负担,并根据业务需求指示,实时扩展或拆除应用程序和服务。
3、在同一硬件上运行更多工作负载
Docker 轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此您可以利用更多的计算能力来实现业务目标。Docker 非常适合于高密度环境以及中小型部署,而您可以用更少的资源做更多的事情。
3.2.2 Docker 安装
关于 Docker 如何安装,Docker的官网已经有为我们提供说明文档
需要注意的是:我们使用的vagrant 安装的Linux系统,那么我们使用的是vagrant为我们提供的 用户,而不是 root 用户。
-
Older versions of Docker were called
docker
ordocker-engine
. If these are installed, uninstall them, along with associated dependencies.旧版本的Docker 叫做
docker
或者docker-engine
,如果你安装了他们,请先卸载,保持一个独立的依赖环境。$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
![image-20200430152040054](https://i-blog.csdnimg.cn/blog_migrate/80b851ff63a5836a393457fabfc9ba22.png)
-
SET UP THE REPOSITORY
Install the
yum-utils
package (which provides theyum-config-manager
utility) and set up the stable repository.安装
yum-utils
, 设置稳定的存储库。$ sudo yum install -y yum-utils $ sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
-
Start Docker.
启动 Docker 容器
$ sudo systemctl start docker
-
Docker 容器开机自启动
$ sudo systemctl enable docker
3.2.3 阿里云镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://cubt013e.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
在 Linux 中依次输入这四条命令,即可通过阿里云为我们加速下载 Docker
容器
3.3 Docker 安装MySQL
3.3.1 下载 MySQL
镜像
利用 Docker 下载镜像时非常的简单,我们只需要去到Docker Hub 的官网找到我们需要下载的镜像以及对应的版本
![image-20200501135446972](https://i-blog.csdnimg.cn/blog_migrate/32ff3969a27b5714c165aed3abb5ae1f.png)
然后利用在 Linux 命令行中输入 docker pull mysql:5.7
(docker pull 镜像软件名:版本号
)
![image-20200501140709441](https://i-blog.csdnimg.cn/blog_migrate/0c44e1dfde7f11f1ee51b926669bf943.png)
通过命令 docker images
可以检查是否已经安装成功
![image-20200501140825360](https://i-blog.csdnimg.cn/blog_migrate/8e450200c0fd27049e759f2ec7fa1f06.png)
3.3.2 创建一个 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 run -p 3306:3306 --restart always --name mymysql -v /etc/localtime:/etc/timezone:rw -v /etc/localtime:/etc/localtime:rw -e MYSQL_ROOT_PASSWORD=asdf@#123 -d mysql:5.6 --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
![](https://i-blog.csdnimg.cn/blog_migrate/8abd82867019cc1a74113c6aeeb623a3.png)
检查是否创建实例成功,可以使用命令 docker ps
参数说明
docker run : 创建一个 docker 实例
--name: 为创建的容器取一个名字,这个名字是自己定义容器的唯一标识
-p 3306:3306: 宿主机的3306端口映射到了虚拟机的3306端口
-v /主机文件夹: docker容器文件夹 当docker容器所创建了文件时,通过主机可以 直接的访问
-V /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v /mydata/mys/log:/var/log/mysgl:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/ib/mysgl/:将配置文件夹挂载到主机
-e MYSQL_ ROOT_ PASSWORD=root: 初始化root用户的密码
-d mysql:5.7
3.3.3 修改配置文件
vi /mydata/mysql/conf/my.cnf
进入 vi 编辑器- 写入一下内容
[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
collection-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
- 重启 mysql
docker restart mysql
-
mysql 在虚拟机启动时,自启动
docker update mysql --restart=always
3.4 Docker 安装 redis
3.3.1下载redis镜像
命令:docker pull redis
redis我们直接下载最新版本的即可
3.3.2 创建一个 redis 实例并启动
mkdir -p /mydata/redis/conf
touch /mydata/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 \
-d redis redis-server /etc/redis/redis.conf
为了避免``/mydata/redis/conf下的
conf `不存在,而被认为是一个目录,我们提前创建好文件夹
3.3.3 测试 redis 是否安装成功
命令:dockers exec -it redis redis-cli
3.3.4 开启AOF的持久化方式保存
进入配置文件文件 vi /mydata/redis/conf/redis.conf
,输入下面内容
appendonly yes
3.3.5 redis 自启动
docker update redis --restart=always
3.5 安装 VS code
安装vs code 以及插件
![image-20200501235205059](https://i-blog.csdnimg.cn/blog_migrate/ef2e99d9a72254361a2afb7fc8ae519e.png)
3.6 安装 Git
3.6.1 下载git
git官网 由于下载速度太慢了,建议使用下面的链接进行下载
https://npm.taobao.org/mirrors/git-for-windows/
3.6.2 配置git
配置git,进入git bash配置作者的信息
git config --global user.name "username" //双引号下的username为自己设置
git config --global user.email "949010354@qq.com"
3.6.4 配置ssh免密登录
- 进入 git bash; 使用:
ssh-keygen -t rsa -C "949010354@qq.com"
, 然后连续三次回车
-
查看完整的密钥 ; 使用
cat ~/.ssh/id_rsa.pub