写在前面环境要求:1.vagrant 2.virtualbox
vagrant下载地址:https://www.vagrantup.com/downloads.html
virtualbox下载地址:https://www.virtualbox.org/wiki/Downloadshtml
官方仓库:https://atlas.hashicorp.com/boxes/search
官方镜像:https://vagrantcloud.com/boxes/search
第三方仓库:http://www.vagrantbox.es/linux
本文将采起centos7做为实验基础镜像
因为网络缘由,在此提供下载百度云镜像地址centos7:https://pan.baidu.com/s/19mcMNhyHrCH0jwXTEMWitwdocker
在cmd窗口中,执行以下命令:shell
vagrant box add centos7 d:/iso/CentOS-7-x86_64-Vagrant-1804_02.VirtualBox.box 1
*** 命令参考json
vagrant box add {title} {url} 1
说明:title 建立虚拟机的别名;url 是下载到本地box的路径,也能够是服务器端的URL,也能够是中央仓库的镜像名称。centos
找到须要存放该实例的位置,在cmd窗口中执行以下命令,本文存放在d:/vagrant服务器
vagrant init centos/7 1
vagrant init centos7 1
执行第二步后,会有Vagrantfile文件生成。编辑该文件尾部加入网络
config.vm.provision "shell", inline: <<-SHELL apt-get update curl -s https://get.docker.com|sh SHELL 1234
如图所示
说明:在SHELL内容中 能够写linux命令,读者可自定义,虚拟机启动后须要的步骤。本文只是下载了docker。ssh
在cmd窗口中,执行以下命令:curl
vagrant up 1
启动日志信息以下:
注:启动日志中包含了ssh链接信息以及用户名等等
在cmd窗口中,执行以下命令,链接上虚拟机:
vagrant ssh 1
接下来的步骤都是在该虚拟机中操做。
在cmd窗口中,执行以下命令,并输入新密码,切换到root用户下
sudo passwd //.....输入两次新密码 su root 123
因为ssh默认是用ca认证,没开放密码验证,故有此步骤
cd /etc/ssh vi sshd_config 12
将内容中的
# To disable tunneled clear text passwords, change to no here! #PasswordAuthentication yes #PermitEmptyPasswords no PasswordAuthentication no 1234
改成
# To disable tunneled clear text passwords, change to no here! PasswordAuthentication yes #PermitEmptyPasswords no #PasswordAuthentication no 1234
,修改完成后,重启sshd.service服务
service sshd restart 1
接下来读者能够经过ssh工具链接该虚拟机。本文使用xshell。
因为docker仓库在外网,国内访问较慢,故使用阿里云镜像加速。
在xshell链接该虚拟机,并在该窗口中执行以下命令:
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://vcmrfdsm.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker 1234567
在xshell窗口中,执行以下命令:
systemctl enable docker 1
在cmd窗口中,进入到要备份的Vagrant文件的目录中,例如上面使用的目录d:/vagrant,执行以下命令,关闭虚拟机,导出镜像:
D:\vagrant>vagrant halt ==> default: Attempting graceful shutdown of VM... D:\vagrant>vagrant package --base centos7-docker --output d:/iso/centos7-docker.box ==> centos7-docker: Clearing any previously set forwarded ports... ==> centos7-docker: Exporting VM... ==> centos7-docker: Compressing package to: d:/iso/centos7-docker.box 123456
注:centos7-docker 虚拟机的名称,这个名称本人已修改
本来如图中所示
读者能够用过VirtualBox的设置进行修改
这样读者就拥有了一个具备docker的centos7镜像了
命令 | 做用 |
---|---|
vagrant box add | 添加box的操做 |
vagrant init | 初始化box的操做,会生成vagrant的配置文件Vagrantfile |
vagrant up | 启动本地环境 |
vagrant ssh | 经过ssh登陆本地环境所在虚拟机 |
vagrant halt | 关闭本地环境 |
vagrant suspend | 暂停本地环境 |
vagrant resume | 恢复本地环境 |
vagrant reload | 修改了Vagrantfile后,使之生效(至关于先 halt,再 up) |
vagrant destroy | 完全移除本地环境 |
vagrant box list | 显示当前已经添加的box列表 |
vagrant box remove | 删除相应的box |
vagrant package | 打包命令,能够把当前的运行的虚拟机环境进行打包 |
vagrant plugin | 用于安装卸载插件 |
vagrant status | 获取当前虚拟机的状态 |
vagrant global-status | 显示当前用户Vagrant的全部环境状态 |