vagrant+virtual+docker搭建安装整理笔记
简介:vagrant+virtualbox可以方便搭建多个VM,vagrant可以通过vagrant box利用virtual box快速搭建vm
1、vagrant下载安装
01 访问Vagrant官网
https://www.vagrantup.com/
02 点击Download
Windows,MacOS,Linux等
03 选择对应的版本
04 傻瓜式安装
05 命令行输入vagrant,测试是否安装成功
2、virtualbox下载安装
01 访问VirtualBox官网
https://www.virtualbox.org/
02 选择左侧的“Downloads”
03 选择对应的操作系统版本
04 傻瓜式安装
05 [win10中若出现]安装virtualbox快完成时立即回滚,并提示安装出现严重错误
(1)打开服务
(2)找到Device Install Service和Device Setup Manager,然后启动
(3)再次尝试安装
ps:目前vagrant的最新版本为2.2.6,对应支持的virtualbox的最高版本为6.0。目前virtual的最高版本是6.1,该版本不兼容vagrant最新版本,否则在后期使用vagrant up命令时会出错。
3、安装centos7
01 创建centos7文件夹,并进入其中[目录全路径不要有中文字符]
02 在此目录下打开cmd,运行vagrant init centos/7
此时会在当前目录下生成Vagrantfile,同时指定使用的镜像为centos/7,关键是这个镜像在哪里,我们可以通过https://vagrantcloud.com/centos/boxes/7/versions/1905.1/providers/virtualbox.box链接下载centos镜像(注意:vagrant up命令便是通过该链接下载镜像的!),名称是xxx.virtualbox.box文件;当然如果有现有的Vagrantfile,可以复制到该目录下,此时vagrant init命令操作便可以省去。
03 将virtualbox.box文件添加到vagrant管理的镜像中
(1)将下载的镜像保存到磁盘的某个目录,比如D:\virtualbox.box
(2)添加镜像并起名叫centos/7:vagrant box add centos/7 D:\virtualbox.box
(3)vagrant box list 查看本地的box[这时候可以看到centos/7]
04 centos/7镜像有了,根据Vagrantfile文件启动创建虚拟机
来到centos7文件夹,在此目录打开cmd窗口,执行vagrant up[打开virtual box观察,可以发现centos7创建成功]
05 以后大家操作虚拟机,还是要在centos文件夹打开cmd窗口操作
vagrant halt 优雅关闭
vagrant up 正常启动
06 vagrant常用命令
(1)vagrant ssh
进入刚才创建的虚拟机centos7中
(2)vagrant halt
停止/关闭centos7
(3)vagrant destroy
删除centos7
(4)vagrant status
查看当前vagrant创建的虚拟机状态
(5)Vagrantfile中也可以写脚本命令,使得centos7更加丰富
但是要注意,修改了Vagrantfile,要想使正常运行的centos7生效,必须使用vagrant reload
4、Xshell连接虚拟机centos7
01 使用centos7的默认账号连接
在centos文件夹下执行vagrant ssh-config查看ssh状态
关注:Hostname Port IdentityFile
IP:127.0.0.1
port:2222
用户名:vagrant
密码:vagrant
文件:Identityfile指向的文件private-key
02 使用root账户登录
vagrant ssh 进入到虚拟机中
sudo -i
vi /etc/ssh/sshd_config
修改PasswordAuthentication yes
passwd修改密码,比如abc123
systemctl restart sshd
使用账号root,密码abc123进行登录
5、vagrant根据现有box打包box分发
01 关闭虚拟机
vagrant halt
02 打包
vagrant package --output first-docker-centos7.box
03 得到first-docker-centos7.box
04 将first-docker-centos7.box添加到其他的vagrant环境中
vagrant box add first-docker-centos7 first-docker-centos7.box
05 得到Vagrantfile
vagrant init first-docker-centos7
06 根据Vagrantfile启动虚拟机
vagrant up [此时可以得到和之前一模一样的环境,但是网络要重新配置]
6、vagrant常用命令
01 关闭虚拟机
vagrant halt
02 暂停虚拟机
vagrant suspend
03 从暂停中恢复虚拟机
vagrant resume
04 重载虚拟机
vagrant reload
05 启动虚拟机
vagrant up
06 查看安装的插件
vagrant plugin list
07 卸载安装了的插件
vagrant plugin remove xxx插件名
7、安装docker
01 进入centos7
vagrant ssh
02 卸载之前的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
03 安装必要的依赖
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
04 设置阿里云docker仓库
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
05 安装docker
sudo yum install -y docker-ce docker-ce-cli containerd.io
06 启动docker
sudo systemctl start docker
sudo systemctl enable docker
07 设置docker镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://vl8aqvzg.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
08 测试docker安装是否成功
sudo docker run hello-world
8、可能有的疑虑
(1)docker pull在哪拉取的镜像?
默认是在hub.docker.com
(2)docker pull tomcat拉取的版本是?
默认是最新的版本,可以在后面指定版本":"
(3)简单先说一下命令咯
docker pull 拉取镜像到本地
docker run 根据某个镜像创建容器
-d 让容器在后台运行,其实就是一个进程
--name 给容器指定一个名字
-p 将容器的端口映射到宿主机的端口
docker exec -it 进入到某个容器中并交互式运行