VirtualBox和vagrant创建虚拟机安装Docker及开发工具
1、下载virtualbox及vagrant虚拟机镜像
virtualbox官网-> https://www.virtualbox.org/ vagrant虚拟机iso镜像官网-> https://www.vagrantup.com/ 注意: 安装文件的目录不包含中文
2、Vagrant安装后的两种使用方法
方法一
通过VirtualBOX正常启动操作
vagrant的命令使用 首先安完vagrant后进行重启一下,开机之后cmd命令输入 vagrant 会有很多引导提示,如下图 
vagrant init 拉取官方镜像命令
cmd输入 vagrant init centos/7 直接就可以在virtualbox中快速创建一个centos操作系统 更多操作系统根据https://app.vagrantup.com/boxes/search网址在命令行自行添加
拉取官方镜像创建时,切换至c盘以外的磁盘空文件夹,不会占用c盘空间,会生成如下图的文件。缺点是每次cmd命令通过vagrant up启动虚拟机时,cmd要切换安装的路径。如不用cmd命令启动虚拟机,可以在virtualbox中手动开启虚拟机,在开启的虚拟机中进行命令的操作 
配置网卡
记事本形式打开生成的 Vagrantfile 文件,找到图片中的一行ip地址,cmd命令输入ipconfig查看ip地址,取消注释,将 Vagrantfile 文件中的ip更改为ipv4中的地址192.168.56.1。 更改完之后重新启动虚拟机,在linux系统ip addr命令查看IP地址 在window系统cmd通过 ipconfig`命令查看ip地址。 两个系统互相ping验证是否ping通   
作者两种选取方法建议
方法一 为最简单的方法,如不想记方法二 2.2之后这么多cmd命令或不使用cmd操作虚拟机,就可采用此方法 直接就可以在virtualbox中进行一系列linux的命令操作及关机,更为简便 用户名及密码为 vagrant 缺点是方法一在打开的虚拟机窗口进行linux命令操作,方法二直接通过ssh形式在cmd窗口进行linux操作。 自行采取方法,推荐方法一简便 
方法二
通过cmd命令切换至安装vagrant的磁盘操作虚拟机
安装完virtualbox之后,不需要进行任何操作,也不用创建和下载虚拟机。可以使用下载的vagrant镜像快速创建一个虚拟机
2.1vagrant的命令使用
首先安完vagrant后进行重启一下,开机之后cmd命令输入 vagrant 会有很多引导提示,如下图 
2.2vagrant init 拉取官方镜像命令
cmd输入 vagrant init centos/7 直接就可以在virtualbox中快速创建一个centos操作系统 更多操作系统根据https://app.vagrantup.com/boxes/search网址在命令行自行添加
拉取官方镜像创建时,切换至c盘以外的磁盘空文件夹,不会占用c盘空间,会生成如下图的文件。缺点是每次cmd命令通过vagrant up启动虚拟机时,cmd要切换安装的路径。如不用cmd命令启动虚拟机,可以在virtualbox中手动开启虚拟机,在开启的虚拟机中进行命令的操作

2.3vagrant up启动创建虚拟机命令
cmd中输入 vagrant up 直接可以启动虚拟机,可以在virtualbox中看到运行的虚拟机
如安装虚拟机的位置在c盘外,cmd切换至虚拟机安装目录再运行 vagrant up 命令,或者采取方法一进行操作

2.4 vagrant ssh命令 通过cmd创建的虚拟机并cmd连接至虚拟机

2.5 exit 推出虚拟机连接命令
exit为 cmd退出关闭虚拟机命令 
配置网卡
记事本形式打开生成的 Vagrantfile 文件,找到图片中的一行ip地址,cmd命令输入ipconfig查看ip地址,取消注释,将 Vagrantfile 文件中的ip更改为ipv4中的地址192.168.56.1, 更改完之后重新启动虚拟机。 在linux系统ip addr命令查看IP地址 在window系统cmd通过 ipconfig`命令查看ip地址。 两个系统互相ping验证是否ping通
  
可以在virtualBox工具中配置固定的ip地址,防止重启服务器ip地址改变 
3、安装开发工具
linux centos系统安装Docker
1 如已安装docker执行卸载命令
yum remove -y docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
2 安装需要的依赖包:
sudo yum install -y yum-utils
3 设置Dokce软件源信息
# 3.1官方的方式,速度会特别慢,需要手动执行命令配置阿里云软件源(推荐3.2)
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
centos配置阿里云镜像参考地址
https://cr.console.aliyun.com/cn-qingdao/instances/mirrors
配置完后重新加载
systemctl daemon-reload
配置完后重新启动docker 命令
systemctl restart docker
------------------------------------------------------------------------
# 3.2、推荐使用此方法
$ sudo yum-config-manager \
--add-repo \
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
$ sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
4 更新并安装Docker-CE环境
sudo yum makecache fast
sudo yum -y install docker-ce
可只执行如上命令 sudo yum install docker-ce docker-ce-cli containerd.io
# 停止docker
sudo service docker stop
# 重启docker
sudo service docker restart
# 启动docker服务,并设置开机启动
systemctl enable docker.service && service docker start
------------------------------------------------------------------------
Docker启动的两种方法
service docker start
systemctl start docker
查看是否启动成功
docker -v # 查看docker版本
# docker设置开机自启动
systemctl enable docker
docker安装mysql5.7
搜素mysql所有的docker版本
docker search mysql
1 拉取mysql镜像
docker pull mysql:5.7
2 启动mysql容器 (注意设置自己的密码)
#方式1、 --name指定容器名字 -v目录挂载 -p指定端口映射 -e设置mysql参数 -d后台运行
docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql:5.7
#方式2、 --name指定容器名字 -v目录挂载 -p容器端口映射主机端口 -e设置mysql参数 -d后台运行
docker run -p 3306:3306 --name mysql-5.7 -v /mydata/mysql/master/log:/var/log/mysql -v /mydata/mysql/master/data:/var/lib/mysql -v /mydata/mysql/master/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
3 进入mysql容器
docker exec -it 容器名称/容器id bin/bash
4 修改所有主机可以连接到mysql服务器:
# mysql -u root -proot
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION; //任何远程主机都可以访问数据库
# 刷新权限
flush privileges;
退出容器快捷键 ctrl+d 或者不关闭退出 ctrl+p+q
# 如安装mysql8.0远程连接不上解决方法,因为8之后密码加密和之前版本不同
alter user 'root'@'%' identified with mysql_native_password by '密码';
docker安装mysql8.0
# 镜像拉取
docker pull mysql:8.0.16
# 创建挂载目录
mkdir -p /docker/mysql/{log,conf,data}
docker run --name mysql_8 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d -v /docker/mysql/data:/var/lib/mysql -v /docker/mysql/conf:/etc/mysql/conf.d -v /docker/mysql/log:/var/log/mysql mysql:8.0.16 --lower_case_table_names=1
docker run
--name mysql8 容器名字
--restart always docker重启后自动自动
-p 3306:3306 端口映射
-e MYSQL_ROOT_PASSWORD=2418870649 数据库密码设置
-d 后台运行容器
-v /docker/mysql/data:/var/lib/mysql 挂载数据库数据
-v /docker/mysql/conf:/etc/mysql/conf.d 挂载配置文件
-v /docker/mysql/log:/var/log/mysql 挂载数据库日志
mysql:8.0.16
--lower_case_table_names=1 设置表名参数名等忽略大小写(要在第一次设置的时候设置)
--character-set-server=utf8mb4
--collation-server=utf8mb4_unicode_ci
------------------------------------------------------------------------
# 容器中安装vim
apt-get update
apt-get install vim
# 把容器中的文件拷贝出来
docker cp 容器id:/etc/mysql/my.cnf /root/
# 把主机的文件拷贝到容器中
docker cp /home/tom/my.cnf 容器id:/etc/mysql/```
安装redis
在虚拟机中创建redis数据挂载目录
# 创建redis挂载目录
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
# 拉取redis镜像
docker pull redis
#通过镜像创建容器
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
# 进入redis容器中
docker exec -it redis redis-cli
redis默认是不持久化的。在配置文件中输入appendonly yes,支持aof持久化
vim /mydata/redis/conf/redis.conf
# 添加下面内容
appendonly yes
保存退出
执行如下命令-> 重启redis 连接redis
docker restart redis / docker -it redis redis-cli
设置redis容器在docker启动的时候启动
docker update redis --restart=always
|