VirtualBox+Vagrant+Centos 7,安装Docker,使用Docker安装配置MySQL

一.安装Linux虚拟机

本次讲解的是开源免费的虚拟机实现方案:VirtualBox+Vagrant

1.下载VirtualBox:

 1.1 浏览器搜索VirtualBox,进入官网

1.2 点击下载Windows版本

 

1.3 安装,建议不要安装在C盘,安装完成打开后如下图

1.4 电脑开启虚拟化技术

注:电脑配置低或老电脑一般不会开启虚拟化

是否开启判断方式:如果电脑曾经安装过VMware+CentOS,并且正确启动,肯定已经打开了虚拟化

2.安装Vagrant获取并安装系统

2.1 浏览器搜索Vagrant,进入官网

2.2 点击下载Windows 64版本

 

 

 

 

2.3 安装,建议不要安装在C盘,安装完重启电脑

2.4 判断是否安装完成:cmd中输入vagrant,如果有一堆命令提示,就表明安装成功! 

2.5 获取镜像:在cmd中输入vagrant init centos/7,获取一个CentOs镜像,效果如下图,意思为在你电脑系统当前登录用户目录下,创建了一个Vagrantfile文件

注: vagrant init xxx表示初始化一个镜像,xxx取值来自于vargrant的镜像仓库。

2.6 启动虚拟环境:cmd中输入命令vagrant up,会去官方下载镜像,并自动导入到VirtualBox内,并自动启动。下载是一个漫长的过程,出现如下图这样的话表示启动成功:

 

3.使用系统

3.1 接着cmd继续下去:

ctrl+c 结束启动提示

vagrant ssh 连接虚拟机

连接完毕,即可把cmd当成xshell使用。

3.2 上上图中出现的xfyuao_default虚拟机上右键可以启动或停止虚拟机,也可在cmd中输入vagrant up启动虚拟机

3.3 可能的问题:VirtualBox可能会和以下软件有冲突导致虚拟机无法启动等:红蜘蛛、净网大师、360、其他未知软件。解决办法:卸载这些软件并重启电脑。

4.其他终端连接

4.1 为方便我们外部的W10直连虚拟机,需要在Vagrantfile文件内配置虚拟机的ip地址,ip地址段要和VirtualBox保持一致。

Vagrantfile文件在电脑登录用户的目录下,如我的在:C:\Users\xfyuao

ip段查看方式如下图,要在cmd中输入ipconfig/all,找到对应网卡的地址

编辑Vagrantfile文件,大约在35行,#表示注释,复制#后内容,粘贴到下一行,ip改为VirtualBox同一地址段,如上图可修改为:

config.vm.network "private_network", ip: "192.168.56.x"

其中x取2-255之间,建议范围100-200,修改后如下图:

 

4.2 重启虚拟机或输入命令vagrant rolad重启虚拟机,即可和W10互相ping通

4.3 开启远程登录,修改“/etc/ssh/sshd_config”

PermitRootLogin yes 
PasswordAuthentication yes

然后重启SSHD

systemctl restart sshd

即可使用Xshell等进行远程连接

二.Docker

docker是一种虚拟化容器技术,基于镜像,可以秒级启动各种容器,每一种容器都是一个完整的运行环境,容器之间互相隔离。换句话说就是docker会为每个软件都创建一个linux系统存放它们。

1.Cent OS下安装Docker

1.1 安装docker,获取响应系统下的安装命令,如下图:

1.2 以下命令均来自上图。先卸载旧版本:连上centos的终端,建议使用Xshell,管理员角色运行

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

1.3 要执行的命令和含义:

命令含义
第一个命令卸载旧版本在上面呢,这里不好粘贴 shell中见到换行就执行,添加\表示当前命令未结束
yum install -y yum-utils
安装依赖工具
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo docker安装地址
yum install docker-ce docker-ce-cli containerd.io 安装docker引擎、客户端、容器,需要输入y确认两次
systemctl start docker 启动docker
docker -v 查看版本
docker images 查看使用docker下载的所有镜像
systemctl enable docker 开机启动docker
docker pull 软件名:版本 下载镜像
docker ps 查看docker中正在运行的容器
docker ps -a 查看docker中所有的容器
docker run xxx 根据某个镜像创建并启动一个容器,就是安装软件,run一次安一个
docker start 容器名/id 启动容器
docker stop 容器名/id 停止容器
docker restart 容器名/id 重启容器
docker rm 容器名/id 删除容器,就是卸载软件

1.4 docker是国外的,默认下载镜像的地址是国外,我们更改为国内镜像。去阿里云获取镜像加速地址,登录阿里云,进入控制台,如下图

 

 

1.5 运行下面四个命令即可

 

 

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
 "registry-mirrors": ["https://fs0pkpfq.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

2.Docker内安装MySQL

在docker下安装一个软件分为以下几步:1.获取镜像版本;2.pull安装;3.run命令启动该镜像的一个容器;4.(可选)exec进入容器查看安装的软件;5.(可选)设置docker启动时就启动、停止、启动容器

2.1 去docker镜像仓库找到要下载的软件的版本,搜索docker hub进入官网

 

 

 

 

2.2 我们下载mysql5.7版本,输入命令

docker pull mysql:5.7

2.3 启动一个mysql容器,输入下段代码。如果电脑内自行安装过mysql(不是使用docker),可能出现3306端口被占用的问题,这里把冒号前的3306改成3307等,再粘贴运行,改完再粘。

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=admin \
-d mysql:5.7

代码含义:因为docker会为每个软件建立一个独立的运行环境,也就是docker在安装一个软件前,先在自己内部创建一个linux系统,然后在这个linux系统内安装这个软件。

第一行:启动一个容器,给这个容器命名为mysql,-p端口映射,把容器内的3306端口映射到docker外,映射成3306;

第2-4行:-v是挂载,可以理解为快捷方式,指的是把docker内的linux内的目录创建一个快捷方式,:前是快捷方式在docker外的位置,:后是docker内的linux内的目录;

第5行:-e是设置环境变量,这里修改root用户的密码为admin;

第6行:被启动容器基于mysql:5.7镜像(docker images内的一个)

注意: pull下来的叫镜像(软件安装包),一个镜像可以启动(run)很多个容器,所以下次使用这个mysql时就使用start和stop来启动和停止mysql容器,如果使用run会新建一个mysql容器。你可以使用rm命令移除一个停止运行的容器。

2.4 验证docker的独立容器

查看正在运行的镜像: docker ps

进入到某个容器内部,也就是docker创建的linux的内部:

docker exec -it 容器名或id /bin/bash

在容器内部可以查看mysql安装位置: whereis mysql

2.5 修改mysql默认编码

切换到/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

重启镜像,我们可以去内部看看是否修改成了。

2.6 设置启动docker时,即运行mysql

docker update mysql --restart=always

3 自行安装JDK、Tomcat、Nginx、Redis......

JDK安装,无需配置环境变量,自动配好的,注意是安装在docker内部的,外部用不了,所以要把项目部署在docker内才能使用docker安装的JDK。

Tomcat安装完启动之后,W10内的浏览器输入“虚拟机ip:8080”如果能看到页面或者404,表示安装完成。404的原因是webapps下没有ROOT项目,可以自己在docker内的Tomcat内的webapps下新建文件夹ROOT,然后往这个文件夹内复制一个HTML,然后再次访问就不是404而是自己放的页面了。

posted @ 2021-05-27 10:25  xfyuao  阅读(611)  评论(3编辑  收藏  举报