VirtualBox和vagrant创建虚拟机安装Docker及开发工具

  • 1、下载virtualbox及vagrant虚拟机镜像
  • 2、Vagrant安装后的两种使用方法
  • 方法一
  • 通过VirtualBOX正常启动操作
  • vagrant init 拉取官方镜像命令
  • 配置网卡
  • 作者两种选取方法建议
  • 方法二
  • 通过cmd命令切换至安装vagrant的磁盘操作虚拟机
  • 2.1vagrant的命令使用
  • 2.2vagrant init 拉取官方镜像命令
  • 2.3vagrant up启动创建虚拟机命令
  • 2.4 vagrant ssh命令 通过cmd创建的虚拟机并cmd连接至虚拟机
  • 2.5 exit 推出虚拟机连接命令
  • 配置网卡
  • 3、安装开发工具
  • linux centos系统安装Docker
  • docker安装mysql5.7
  • docker安装mysql8.0
  • 安装redis


1、下载virtualbox及vagrant虚拟机镜像

virtualbox官网-> https://www.virtualbox.org/
vagrant虚拟机iso镜像官网-> https://www.vagrantup.com/
注意: 安装文件的目录不包含中文

2、Vagrant安装后的两种使用方法

方法一

通过VirtualBOX正常启动操作

vagrant的命令使用

首先安完vagrant后进行重启一下,开机之后cmd命令输入 vagrant 会有很多引导提示,如下图

虚拟机docker buildx安装 虚拟机怎么安装docker_mysql

vagrant init 拉取官方镜像命令

cmd输入 vagrant init centos/7 直接就可以在virtualbox中快速创建一个centos操作系统
更多操作系统根据https://app.vagrantup.com/boxes/search网址在命令行自行添加

拉取官方镜像创建时,切换至c盘以外的磁盘空文件夹,不会占用c盘空间,会生成如下图的文件。缺点是每次cmd命令通过vagrant up启动虚拟机时,cmd要切换安装的路径。如不用cmd命令启动虚拟机,可以在virtualbox中手动开启虚拟机,在开启的虚拟机中进行命令的操作

虚拟机docker buildx安装 虚拟机怎么安装docker_虚拟机docker buildx安装_02

配置网卡

记事本形式打开生成的 Vagrantfile 文件,找到图片中的一行ip地址,cmd命令输入ipconfig查看ip地址,取消注释,将 Vagrantfile 文件中的ip更改为ipv4中的地址192.168.56.1。 更改完之后重新启动虚拟机,在linux系统ip addr命令查看IP地址 在window系统cmd通过ipconfig`命令查看ip地址。 两个系统互相ping验证是否ping通

虚拟机docker buildx安装 虚拟机怎么安装docker_mysql_03


虚拟机docker buildx安装 虚拟机怎么安装docker_docker_04


虚拟机docker buildx安装 虚拟机怎么安装docker_mysql_05



作者两种选取方法建议

方法一 为最简单的方法,如不想记方法二 2.2之后这么多cmd命令或不使用cmd操作虚拟机,就可采用此方法 直接就可以在virtualbox中进行一系列linux的命令操作及关机,更为简便

用户名及密码为 vagrant

缺点是方法一在打开的虚拟机窗口进行linux命令操作,方法二直接通过ssh形式在cmd窗口进行linux操作。 自行采取方法,推荐方法一简便

虚拟机docker buildx安装 虚拟机怎么安装docker_linux_06

方法二

通过cmd命令切换至安装vagrant的磁盘操作虚拟机

安装完virtualbox之后,不需要进行任何操作,也不用创建和下载虚拟机。可以使用下载的vagrant镜像快速创建一个虚拟机

2.1vagrant的命令使用

首先安完vagrant后进行重启一下,开机之后cmd命令输入 vagrant 会有很多引导提示,如下图

虚拟机docker buildx安装 虚拟机怎么安装docker_mysql

2.2vagrant init 拉取官方镜像命令

cmd输入 vagrant init centos/7 直接就可以在virtualbox中快速创建一个centos操作系统
更多操作系统根据https://app.vagrantup.com/boxes/search网址在命令行自行添加

拉取官方镜像创建时,切换至c盘以外的磁盘空文件夹,不会占用c盘空间,会生成如下图的文件。缺点是每次cmd命令通过vagrant up启动虚拟机时,cmd要切换安装的路径。如不用cmd命令启动虚拟机,可以在virtualbox中手动开启虚拟机,在开启的虚拟机中进行命令的操作

虚拟机docker buildx安装 虚拟机怎么安装docker_虚拟机docker buildx安装_08



2.3vagrant up启动创建虚拟机命令

cmd中输入 vagrant up 直接可以启动虚拟机,可以在virtualbox中看到运行的虚拟机

如安装虚拟机的位置在c盘外,cmd切换至虚拟机安装目录再运行 vagrant up命令,或者采取方法一进行操作

虚拟机docker buildx安装 虚拟机怎么安装docker_docker_09

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

虚拟机docker buildx安装 虚拟机怎么安装docker_mysql_10

2.5 exit 推出虚拟机连接命令

exit为 cmd退出关闭虚拟机命令

虚拟机docker buildx安装 虚拟机怎么安装docker_linux_11

配置网卡

记事本形式打开生成的 Vagrantfile 文件,找到图片中的一行ip地址,cmd命令输入ipconfig查看ip地址,取消注释,将 Vagrantfile 文件中的ip更改为ipv4中的地址192.168.56.1, 更改完之后重新启动虚拟机。
在linux系统ip addr命令查看IP地址 在window系统cmd通过ipconfig`命令查看ip地址。 两个系统互相ping验证是否ping通

虚拟机docker buildx安装 虚拟机怎么安装docker_mysql_03


虚拟机docker buildx安装 虚拟机怎么安装docker_docker_04


虚拟机docker buildx安装 虚拟机怎么安装docker_mysql_05

可以在virtualBox工具中配置固定的ip地址,防止重启服务器ip地址改变

虚拟机docker buildx安装 虚拟机怎么安装docker_linux_15


最后注意设置桥接模式,默认为NAT模式!!

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 -p 对外暴露的端口:mysql运行端口 --name 容器名称 -e MYSQL_ROOT_PASSWORD=mysql连接密码 -d 镜像名:版本号
# -p 对外暴露的端口:mysql运行端口		
# --name 容器名称	//镜像首次启动时会自动创建容器,需要给容器命名
# -e MYSQL_ROOT_PASSWORD=mysql连接密码		
# -d 后台运行
命令:
docker run -p 3315:3306 --name mysql5.7 \
-e MYSQL_ROOT_PASSWORD=密码 \
-d mysql:5.7


#方式2 挂载数据(注意设置自己的密码) 路径根据需要自配
--name指定容器名字 -v目录挂载 -p容器端口映射主机端口  -e设置mysql参数 -d后台运行
docker run -p 3306:3306 --name mysql5.7 \
-v /myfile/mysql5.7/conf:/etc/mysql/mysql.conf.d \
-v /myfile/mysql5.7/log:/var/log/ \
-v /myfile/mysql5.7/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=密码 \
-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 '密码';


时区更改(根据需要操作)
> set global time_zone = '+8:00'; (修改mysql全局时区为北京时间,也就是我们所在的东8区)
> set time_zone = '+8:00'; (修改当前会话时区)
> flush privileges; (立马生效)

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