三、环境搭建--谷粒商城

发布时间 2023-04-30 12:27:58作者: 93丶Fss

1.安装Linux虚拟机
1)安装virtualbox
在本次课程里,Linux虚拟机使用的是VirtualBox。virtualBox是开源的,打开官网地址:https://www.virtualbox.org,下载安装即可。

在安装virtualbox之前,要开启CPU虚拟机化,因为每个品牌电脑的方式不同,具体操作可百度操作。
安装时,推荐安装到非C盘的其他盘。
安装完成后,打开virtualbox,界面如下:

可以先下载Linux系统镜像,然后点击新建,按照步骤一步步操作创建虚拟机。但这样操作有些麻烦,推荐使用一个新的技术vagrant。只要安装好virtualbox后,vagrant可以帮助我们快速创建一个虚拟机。(vagrant本身有一个镜像仓库,在这个镜像仓库中,官方有好多做好的镜像,我们使用vagrant,就可以连接virtualbox,快速地从官方镜像中创建出一个虚拟机。)

2)安装vagrant
打开vagrant官方网站,点击下载Windows版本的vagrant,下载完成后,点击安装即可(推荐安装到非C盘的其他盘)。vagrant安装完成之后需要重启系统。
验证vagrant是否安装完成:打开cmd命令窗口,输入“vagrant”,出现vagrant的相关命令即为安装成功
https://app.vagrantup.com/boxes/search vagrant官方镜像仓库
https://www.vagrantup.com/downloads.html vagrant下载

3)使用vagrant安装centos系统

简略步骤:

  • 输入命令“vagrant init centos/7”来初始化
  • 输入命令“vagrant up”启动虚拟机环境
$ vagrant init centos/7
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

 执行完上面的命令后,会在用户的家目录下生成 Vagrantfile 文件。

 vagrant up命令下载镜像过程比较漫长,也可以采用先用下载工具下载到本地后,然后使用 “ vagrant box add ” 添加,再 “vagrant up” 即可

下载地址:https://vagrantcloud.com/centos/boxes/7/versions/2004.01/providers/virtualbox.box

 第一步命令为:vagrant box add + centos/7 + box地址(D:\vagrant\box\virtualbox.box)

C:\Users\ASUS>vagrant box add centos/7 D:\vagrant\box\virtualbox.box          
==> box: Box file was not detected as metadata. Adding it directly...
==> box: Adding box 'centos/7' (v0) for provider:
box: Unpacking necessary files from: file:///D:/vagrant/box/virtualbox.box
box:
==> box: Successfully added box 'centos/7' (v0) for 'virtualbox'!

 第二步命令为:agrant up

C:\Users\ASUS>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'centos/7'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: ASUS_default_1682754569951_70022
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default:
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default:
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: No guest additions were detected on the base box for this VM! Guest
    default: additions are required for forwarded ports, shared folders, host only
    default: networking, and more. If SSH fails on this machine, please install
    default: the guest additions and repackage the box to continue.
    default:
    default: This is not an error message; everything may continue to work properly,
    default: in which case you may ignore this message.
==> default: Rsyncing folder: /cygdrive/c/Users/ASUS/ => /vagrant

 第三步命令为:vagrant ssh       (vagrant ssh 开启SSH,并登陆到centos7)

C:\Users\ASUS>vagrant ssh
[vagrant@localhost ~]$

后续便可以在这里使用linux命令

 

配置网络信息,打开"Vagrantfile"文件:(大概在35行)

config.vm.network "private_network", ip : "192.168.56.10"

修改完成后,重启启动vagrant

 vagrant reload

 

ip地址在cmd命令:ipconfig里,然后看到一个有virtualbox的,(但是我的没有)

 查看host-only网卡ip网关时发现没有:virtualbox host-only ethernet:

 进入网络适配器里查看,发现有一个的内容就是要找的virtualbox host-only ethernet

改完后cmd命令:vagrant reload(重启虚拟机)

打开cmd:ipconfig查看主机ip

然后与虚拟机互ping,看看是否成功

 ping虚拟机

C:\Users\ASUS>ping 192.168.56.10

正在 Ping 192.168.56.10 具有 32 字节的数据:
来自 192.168.56.10 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.56.10 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.56.10 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.56.10 的回复: 字节=32 时间<1ms TTL=64

192.168.56.10 的 Ping 统计信息:
    数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
    最短 = 0ms,最长 = 0ms,平均 = 0ms

虚拟机ping则先使用vagrant ssh连接,然后再ping主机ip

 

2)安装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
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

 安装新版本

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

 启动docker并开机自启docker

sudo systemctl start docker
sudo systemctl enable docker
//配置镜像加速器
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://s5p8biel.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker

docker中安装mysql

sudo docker pull mysql:5.7
sudo docker images      (查看镜像)

创建实例并启动

//切换root用户,密码为vagrant
su root
//创建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

参数说明:
-p 3306:3306:将容器的3306端口映射到主机的3306端口
–name mysql:是在给容器命名为mysql
-v /mydata/mysql/log:/var/log/mysql \:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql \:将配置文件夹挂载到主机
-v /mydata/mysql/conf:/etc/mysql \:将配置文件夹挂载到主机
-d :后台运行

创建完之后,可以根据命令:
docker ps,查看当前正在运行中的容器
docker ps -l:查看当前所有的容器
docker exec -it mysql /bin/bash:可以进入到mysql容器控制台,命令中的mysql部分可以是容器的名字,也可以是容器的ID

======================================================================================================================================================

进入mysql内部

docker exec -it mysql /bin/bash
exit(退出)

 

使用命令:vi /mydata/mysql/conf/my.cnf,然后输入i进行修改,将如下内容添加,按esc后输入:wq!保存退出

[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

docker restart mysql

重启完成后,我们重新进入到mysql容器内容,查看里面的配置文件是否随着docker中的修改而修改

//进入到mysql容器内部
docker exec -it mysql /bin/bash

//进入到mysql容器内部
docker exec -it mysql /bin/bash


然后按照目录/etc/mysql,找到my.cnf,使用cat my.cnf命令,查看文件内容,和之前在docker的目录下修改的内容一致!
至此,环境搭建已经完成。