前言
最近在折腾一些东西,需要使用docker,但是我的机器配置很神奇,无法直接安装docker,没得法子我只好曲线救国了—使用Vagrant+VirtualBox。
安装 VirtualBox
下载 VirtualBox 安装包
VirtualBox 下载页面地址(不保证长期有效):
1 | html复制代码https://www.virtualbox.org/wiki/Downloads |
我现在的是window版本,具体链接如下(不保证长期有效):
1 | html复制代码https://download.virtualbox.org/virtualbox/6.1.30/VirtualBox-6.1.30-148432-Win.exe |
大家注意 vagrant 和 VirtualBox 的版本,不同的版本之间可能会出现兼容性问题,大家最好和我的保持一致,毕竟坑我已经趟过了。virtualbox:6.1.30版本;vagrant :2.2.19
安装vagrant
下载vagrant 安装包
vagrant下载页面地址:
1 | html复制代码https://www.vagrantup.com/downloads |
直接下载64位的即可,我下载时的版本为vagrant_2.2.19,具体链接如下(不保证长期有效):
1 | html复制代码https://releases.hashicorp.com/vagrant/2.2.19/vagrant_2.2.19_x86_64.msi |
安装vagrant
没啥特别的直接next下一步下一步就行,当然可以自行选择安装地址,这个看自己的意愿。
下载虚拟机镜像
这个虚拟机镜像下载的速度真的是很感人!所以我们要先下好镜像,然后直接用命令添加到vagrant的box中就可以了。下载页面的地址如下(不保证长期有效):
1 | html复制代码https://app.vagrantup.com/centos/boxes/7 |
我下载的是centos7镜像,具体链接如下(不保证长期有效):
别问为什么还使用centos7,问就是习惯了centos。
1 | html复制代码https://cloud.centos.org/centos/7/vagrant/x86_64/images/CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box |
自定义项目地址
通过 Vagrant 创建虚机需要先导入镜像文件,也就是 box,它们默认存储的位置在用户目录下的 .vagrant.d 目录下,对于 Windows 系统来说,就是 C:\Users\用户名.vagrant.d。如果后续可能会用到较多镜像,或者你的 C 盘空间比较紧缺,可以通过设置环境变量 VAGRANT_HOME 来设置该目录。
window系统
1 | shell复制代码setx VAGRANT_HOME "D:\ProgramFiles\vagrant\boxData" |
linux 系统
1 | shell复制代码export VAGRANT_HOME="/path/to/vagrant_home" |
window系统下使用cmd执行上述命令后,记得重新打开cmd配置才会生效。
添加本地镜像
我将镜像放在D:\ProgramFiles\vagrant\data
目录下,在cmd上执行下面的命令添加镜像:
1 | shell复制代码vagrant box add centos/7 ./CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box |
如果提示没有权限则请使用管理员权限启动cmd
执行完毕提示下面的文字则镜像添加成功:
1 | shell复制代码==> box: Successfully added box 'centos/7' (v0) for 'virtualbox'! |
新建虚机
还是在D:\ProgramFiles\vagrant\data
目录下,执行下面的命令:
1 | shell复制代码vagrant init centos/7 |
出现下面的文字提示则认为初始化成功:
1 | shell复制代码A `Vagrantfile` has been placed in this directory. You are now |
启动虚拟机
执行下面的命令之前,记得先启动VirtualBox。
1 | shell复制代码vagrant up |
出现下面的文字提示则认为虚拟机启动成功:
1 | shell复制代码D:\ProgramFiles\vagrant\data>vagrant up |
这个地方坑就比较多了,一是前面提到的vagrant和virtualbox两者版本兼容的问题。二就是中文用户名的问题。前面说到创建成功的镜像文件保存在 C:\Users\用户名.vagrant.d路径下,vagrant采用ruby语言编写会遇到一些编码的问题,碰巧我的用户名也是中文,网上解决方案折腾了半天,最后我直接新建了一个windows用户解决。
接下来你就可以在VirtualBox中看到一个已经启动的虚拟机。
附上我的Vagrantfile配置文件
1 | shell复制代码# -*- mode: ruby -*- |
登录虚拟机
vagrant默认有两个账户,具体如下:
1 | shell复制代码账户:vagrant 密码: vagrant |
其实vagrant默认的是使用密钥登录,直接执行vagrant ssh
命令即可登录,但是登录的是vagrant
账户,但在虚拟机中安装一些软件,例如docker是需要使用root账户权限的,所以该如何解决呢?
直接使用 su
命令,然后输入密码 vagrant
即可。
可以使用 vagrant ssh-config
查看具体的登录配置:
1 | shell复制代码D:\ProgramFiles\vagrant\data>vagrant ssh-config |
上面说到使用vagrant ssh
登录虚拟机,但是有些地方还是不太方便,所以还是需要使用专业的终端软件登录虚拟机,这里我使用的是MobaXterm
,以前我都是使用xshell+xftp的,无奈后面没法白*嫖,就换了这个MobaXterm
,用起来感觉还行。
这个host我尝试使用前面Vagrantfile文件中的IP地址 192.168.33.10
,但是无法连接。
安装jdk8
接下来我们就登录虚拟机,先安装一下jdk8。下面的步骤都是在虚拟机中操作的。
下载jdk8安装包
Oracle的Java8下载页面地址(不保证长期有效):
1 | html复制代码https://www.oracle.com/java/technologies/downloads/#java8 |
我选择的是x64 Compressed Archive版本,具体下载地址如下(这个链接应该也会随时失效的):
1 | html复制代码https://download.oracle.com/otn/java/jdk/8u311-b11/4d5417147a92418ea8b615e228bb6935/jdk-8u311-linux-x64.tar.gz?AuthParam=1638083601_4ec49a992915eff50f4be9d904997568 |
可以在window下下载好然后传到Linux里,不过我建议直接在Linux中下载,毕竟就是一个命令的事情:
1 | shell复制代码cd /usr/local/src |
现在下载需要登录账户了,这里提供一个Oracle登录账户
账户:pigide3064@fxseller.com
密码:Azerty1!
账户随时会失效,若是失效自己百度或者直接注册一个账户吧!
安装jdk8
- 创建安装目录
1 | shell复制代码mkdir /usr/local/java |
- 将安装包解压至安装目录
1 | shell复制代码tar -zxvf /usr/local/src/jdk-8u311-linux-x64.tar.gz\?AuthParam\=1638083601_4ec49a992915eff50f4be9d904997568 -C /usr/local/java/ |
- 设置环境变量,将Java添加至环境变量中
打开文件
1 | shell复制代码vim /etc/profile |
在文件的末尾处增加
1 | shell复制代码 |
执行source命令重载profile文件
1 | shell复制代码source /etc/profile |
添加软连接(这一步不做好像也是可以的)
1 | shell复制代码ln -s /usr/local/java/jdk1.8.0_311/bin/java /usr/bin/java |
- 检查效果如何:
1 | shell复制代码java -version |
结果出现下面的文字则代表java
安装完成。
安装docker
在安装docker之前记得先切换到root用户。
- 不管三七二十一先执行下面的命令,卸载系统自带的docker。
1 | shell复制代码yum remove docker \ |
- 开始安装docker,执行的相关命令如下:
1 | shell复制代码 |
参考资料参见我之前的文章 在CentOS7上使用yum安装Docker
安装docker composer
这都是用docker了那容器编排起码也要用一下,这里我就用docker composer了。安装的相关命令如下:
- 运行以下命令下载 Docker Compose 的当前稳定版本:
1 | shell复制代码sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose |
这里使用的是官方文档里的示例,安装的是1.29.2版本。链接:
https://docs.docker.com/compose/install/
- 将可执行权限应用于二进制文件:
1 | shell复制代码chmod +x /usr/local/bin/docker-compose |
- 测试安装结果:
1 | shell复制代码docker-compose --version |
如果展现下面提示则代表docker-compose
安装完成。
1 | shell复制代码[root@localhost vagrant]# docker-compose --version |
总结
这样我们就完成了Vagrant+VirtualBox环境配置,也在虚拟机中配置好了Java环境和docker。
本文转载自: 掘金