前言:目前常见的创建虚拟机软件有VirtualBox、VMware Player、Hyper-V等等。本文主要讲述Hyper-V的具体使用,包括如何打开Hyper-V,如何使用Hyper-V创建虚拟机,以及通过几个常见软件(docker、MySQL、Redis等)的安装示例如何在创建好的虚拟机上安装程序。本文讲述会比较详细(啰嗦),通过目录跳转即可,对初学者友好,高手可以跳看。

概要:创建虚拟机;配置映射文件;设置网络;设置固定ip

一、什么是Hyper-V

Hyper-V是微软研发的一款虚拟机软件,设计的目的是为广泛的用户提供更为熟悉以及成本效益更高的虚拟化基础设施软件,这样可以降低运作成本、提高硬件利用率、优化基础设施并提高服务器的可用性。

【重点】现在的Windows10自带Hyper-V,但是默认情况下是不开启的,所以我们要使用时,需要先开启Hyper-V。

二、如何开启Hyper-V

1、直接搜索“Windows功能”

2、在Windows功能中勾选上Hyper-V

3、然后重启电脑

 (注:刚刚更新了Windows10,有些设置不太一样了,建议都直接搜)

二、使用Hyper-V创建虚拟机

注意:先下载映射文件“CentOS-7-x86_64-DVD-2009”,这个文件比较大,先行下载,后面需要用。

链接:https://pan.baidu.com/s/1AcWwScmSY-xSt3hg7VcL6g
提取码:2fs0 

1、直接搜索“Hyper-V”,然后打开Hyper-V管理器

2、在Hyper-V管理器的右侧,点击新建,新建虚拟机,进入新建虚拟机向导界面。

(注:这里主要是指定名称、位置和分配内存)

(1)下一页

 (2)指定名称和位置(一般不建议放C盘)

 (3)指定代数(如果是初学,其实选哪个差别不大)

(4)分配内存(一般东西装得比较多,建议改大一点,2048)

(5)配置网络(先不用管) 

 (6)连接虚拟硬盘 

与物理硬盘驱动器类似,虚拟硬盘驱动器为虚拟机提供存储空间。 必需提供虚拟硬盘驱动器,以便可以在虚拟机上安装操作系统

 (7)安装选项

这里需要用到之前下载好的映射文件,设置指向映射文件

 (8)摘要

是对之前一系列设置的一个概括,可以大致看看,检查一下。

(9)完成

点击完成,会根据配置创建一个我们刚刚设置好的虚拟机。

当然,现在创建好的这个虚拟机还不好用,接下来需要我们对网络和连接方式上进行设置。

三、安装Centos7

安装时,选中文比较友好一点。

四、Hyper-V安装Centos7后的联网

1、测试网络连接情况

(1)启动虚拟机

(2)ping一下,会发现网络ping不通

2、修改配置文件即可解决网络ping不通的问题

(1)在虚拟机中,命令

vi /etc/sysconfig/network-scripts/ifcfg-eth0

(2)命令【i】,进入输入模式修改【ONBOOT=YES】

(3)Esc退出输入模式,命令【:wq】保存修改,回到命令行界面

(4)然后ping www.baidu.com,测试是否可以联网了

五、设置固定IP地址

为了后续的用Windows机连接更方便,所以我们需给虚拟机设置固定的IP地址。

1、创建虚拟交换机

 (1)创建内部虚拟交换机即可

(2) 命名自定义即可,然后应用

2、新建NAT网络适配器

(1)先关闭虚拟机

(2)设置 -> 添加硬件 -> 添加 网络适配器

(3)命名NAT

 3、在Windows机中固定该虚拟网络适配器的IP地址

(1)打开控制面板

(2)更改适配器设置

 (3)设置IP地址和子网编码

4、在虚拟机中,修改配置文件,加入ip地址

(1)启动虚拟机 

命令:

cd /etc/sysconfig/network-scripts/

 命令:

cat ifcfg-eth0

 (2)在配置文件中加入以下信息,指定ip

(3) 保存,固定ip设置至此完成

 

 六、设置在Windows机可以ssh远程连接虚拟机

在虚拟机中,存在命令不可复制、粘贴等许多不便之处,如果我们可以在Windows机上直接去连接虚拟机进行操作,将会大大提高效率。

1、在Hyper-V管理器的网络中查看IP地址

经过我们之前的种种设置,已经可以联网和此时的IP也是固定了,我们可以尝试着用Windows机去联系我们的虚拟机了。

 

 2、cmd命令行连接虚拟机

cmd打开命令窗口,连接虚拟机,命令:

ssh root@192.168.137.106

 连接虚拟机成功,以后我们都可以直接在Windows机上直接操作了。

3、如果出现无法连接的情况

(1)报错:ssh: connect to host ip port 22: Connection timed out

(2)解决:开启允许远程登录

         步骤:

1)先检查是否安装open-server

yum list installed | grep openssh-server

2)然后修改配置文件

vi /etc/ssh/sshd_config

七、附录——安装docker

1、卸载系统之前的 docker

sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine

2、安装 Docker-CE

(1)安装的依赖

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

(2)设置 docker repo yum 位置

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

(3)安装 docker,以及 docker-cli

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

3、启动 docker

sudo systemctl start docker

4、设置 docker 开机自启

sudo systemctl enable docker

5、配置 docker 镜像加速(阿里云容器镜像服务)

修改 daemon 配置文件

/etc/docker/daemon.json 来使用加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"]
}EOF sudo systemctl daemon-reload sudo systemctl restart docker

6、docker 常用命令

注意:切换到 root 用户下

常用命令:

https://docs.docker.com/engine/reference/commandline/docker/

八、附录——docker 安装 mysql

1、下载镜像文件

docker pull mysql:5.7

注:如果不指定版本,则默认下载最新版本

2、创建实例并启动

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容器;挂载;端口映射

如果报错:invalid reference format

原因一般都是:

‘-‘写成’-’ :记住一定时英文短横线
\ 与前面内容缺少空格
\后面多敲了tab建 或者空格

(1)参数说明

-p 3306:3306 :将容器的 3306 端口映射到主机的 3306 端口
-v /mydata/mysql/conf:/etc/mysql :将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql :将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/ :将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root :初始化 root 用户的密码

(2)MySQL 配置

命令,进入到my.cnf配置文件:
vi /mydata/mysql/conf/my.cnf

在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

(3)解决MySQL连接慢的问题

在配置文件中加入如下,并重启 mysql
[mysqld]
skip-name-resolve
解释:
skip-name-resolve :跳过域名解析

3、通过容器的 mysql 命令行工具连接

docker exec -it mysql mysql -uroot -proot

4、设置 root 远程访问

grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; flush privileges;

5、进入容器文件系统

docker exec -it mysql /bin/bash

九、附录——docker 安装 redis

1、下载镜像文件

docker pull redis

2、创建实例并启动

(1)先创建目录

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

(2)然后在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

注意:复制的时候,可能会有格式上的转化错误
\ 与前面内容要有空格
 \后面不要多敲了tab建 或者空格

不然会报错:invalid reference format

附录-redis 自描述文件:

https://raw.githubusercontent.com/antirez/redis/4.0/redis.conf

3、使用 redis 镜像执行 redis-cli 命令连接

docker exec -it redis redis-cli

4、解决Redis重启后,数据没有保存的问题

(1) 问题描述

重启Redis后,之前存的数据就没有了

(2)解决

修改修改配置文件即可

[root@localhost conf]# vi redis.conf

 redis.conf中加入【appendonly yes】

(3)然后记得重启一下Redis,这样数据持久化就成功了。

Logo

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

更多推荐