前言
最近在折腾一些东西,需要使用docker,但是我的机器配置很神奇,无法直接安装docker,没得法子我只好曲线救国了—使用Vagrant+VirtualBox。
安装 VirtualBox
下载 VirtualBox 安装包
VirtualBox 下载页面地址(不保证长期有效):
https://www.virtualbox.org/wiki/Downloads
我现在的是window版本,具体链接如下(不保证长期有效):
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下载页面地址:
https://www.vagrantup.com/downloads
直接下载64位的即可,我下载时的版本为vagrant_2.2.19,具体链接如下(不保证长期有效):
https://releases.hashicorp.com/vagrant/2.2.19/vagrant_2.2.19_x86_64.msi
安装vagrant
没啥特别的直接next下一步下一步就行,当然可以自行选择安装地址,这个看自己的意愿。
下载虚拟机镜像
这个虚拟机镜像下载的速度真的是很感人!所以我们要先下好镜像,然后直接用命令添加到vagrant的box中就可以了。下载页面的地址如下(不保证长期有效):
https://app.vagrantup.com/centos/boxes/7
我下载的是centos7镜像,具体链接如下(不保证长期有效):
别问为什么还使用centos7,问就是习惯了centos。
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系统
setx VAGRANT_HOME "D:\ProgramFiles\vagrant\boxData"
setx VAGRANT_HOME "D:\ProgramFiles\vagrant\boxData" /M
linux 系统
export VAGRANT_HOME="/path/to/vagrant_home"
window系统下使用cmd执行上述命令后,记得重新打开cmd配置才会生效。
添加本地镜像
我将镜像放在D:\ProgramFiles\vagrant\data
目录下,在cmd上执行下面的命令添加镜像:
vagrant box add centos/7 ./CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box
如果提示没有权限则请使用管理员权限启动cmd
执行完毕提示下面的文字则镜像添加成功:
==> box: Successfully added box 'centos/7' (v0) for 'virtualbox'!
新建虚机
还是在D:\ProgramFiles\vagrant\data
目录下,执行下面的命令:
vagrant init centos/7
出现下面的文字提示则认为初始化成功:
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
启动虚拟机
执行下面的命令之前,记得先启动VirtualBox。
vagrant up
出现下面的文字提示则认为虚拟机启动成功:
D:\ProgramFiles\vagrant\data>vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
default: Adapter 2: hostonly
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
default: SSH address: 127.0.0.1:2222
default: SSH username: vagrant
default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
default: No guest additions were detected on the base box for this VM! Guest
default: additions are required for forwarded ports, shared folders, host only
default: networking, and more. If SSH fails on this machine, please install
default: the guest additions and repackage the box to continue.
default:
default: This is not an error message; everything may continue to work properly,
default: in which case you may ignore this message.
==> default: Configuring and enabling network interfaces...
==> default: Rsyncing folder: /cygdrive/d/ProgramFiles/vagrant/data/ => /vagrant
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.
这个地方坑就比较多了,一是前面提到的vagrant和virtualbox两者版本兼容的问题。二就是中文用户名的问题。前面说到创建成功的镜像文件保存在 C:\Users\用户名.vagrant.d路径下,vagrant采用ruby语言编写会遇到一些编码的问题,碰巧我的用户名也是中文,网上解决方案折腾了半天,最后我直接新建了一个windows用户解决。
接下来你就可以在VirtualBox中看到一个已经启动的虚拟机。
附上我的Vagrantfile配置文件
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
# Every Vagrant development environment requires a box. You can search for
# boxes at https://vagrantcloud.com/search.
config.vm.box = "centos/7"
config.vm.network "private_network", ip: "192.168.33.10"
end
登录虚拟机
vagrant默认有两个账户,具体如下:
账户:vagrant 密码: vagrant
账户:root 密码: vagrant
其实vagrant默认的是使用密钥登录,直接执行vagrant ssh
命令即可登录,但是登录的是vagrant
账户,但在虚拟机中安装一些软件,例如docker是需要使用root账户权限的,所以该如何解决呢?
直接使用 su
命令,然后输入密码 vagrant
即可。
可以使用 vagrant ssh-config
查看具体的登录配置:
D:\ProgramFiles\vagrant\data>vagrant ssh-config
Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile D:/ProgramFiles/vagrant/data/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL
上面说到使用vagrant ssh
登录虚拟机,但是有些地方还是不太方便,所以还是需要使用专业的终端软件登录虚拟机,这里我使用的是MobaXterm
,以前我都是使用xshell+xftp的,无奈后面没法白*嫖,就换了这个MobaXterm
,用起来感觉还行。
这个host我尝试使用前面Vagrantfile文件中的IP地址 192.168.33.10
,但是无法连接。
安装jdk8
接下来我们就登录虚拟机,先安装一下jdk8。下面的步骤都是在虚拟机中操作的。
下载jdk8安装包
Oracle的Java8下载页面地址(不保证长期有效):
https://www.oracle.com/java/technologies/downloads/#java8
我选择的是x64 Compressed Archive版本,具体下载地址如下(这个链接应该也会随时失效的):
https://download.oracle.com/otn/java/jdk/8u311-b11/4d5417147a92418ea8b615e228bb6935/jdk-8u311-linux-x64.tar.gz?AuthParam=1638083601_4ec49a992915eff50f4be9d904997568
可以在window下下载好然后传到Linux里,不过我建议直接在Linux中下载,毕竟就是一个命令的事情:
cd /usr/local/src
wget https://download.oracle.com/otn/java/jdk/8u311-b11/4d5417147a92418ea8b615e228bb6935/jdk-8u311-linux-x64.tar.gz?AuthParam=1638083601_4ec49a992915eff50f4be9d904997568
现在下载需要登录账户了,这里提供一个Oracle登录账户
账户:pigide3064@fxseller.com 密码:Azerty1!
账户随时会失效,若是失效自己百度或者直接注册一个账户吧!
安装jdk8
-
创建安装目录
mkdir /usr/local/java
-
将安装包解压至安装目录
tar -zxvf /usr/local/src/jdk-8u311-linux-x64.tar.gz\?AuthParam\=1638083601_4ec49a992915eff50f4be9d904997568 -C /usr/local/java/
-
设置环境变量,将Java添加至环境变量中
打开文件
vim /etc/profile
在文件的末尾处增加
export JAVA_HOME=/usr/local/java/jdk1.8.0_311 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH
执行source命令重载profile文件
source /etc/profile
添加软连接(这一步不做好像也是可以的)
ln -s /usr/local/java/jdk1.8.0_311/bin/java /usr/bin/java
-
检查效果如何:
java -version
结果出现下面的文字则代表java
安装完成。
安装docker
在安装docker之前记得先切换到root用户。
-
不管三七二十一先执行下面的命令,卸载系统自带的docker。
yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
开始安装docker,执行的相关命令如下:
# step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # Step 2: 添加软件源信息 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo # Step 3: 更新并安装Docker-CE sudo yum makecache fast sudo yum -y install docker-ce # Step 4: 开启Docker服务 sudo service docker start # 开机启动 systemctl enable docker
参考资料参见我之前的文章 在CentOS7上使用yum安装Docker
安装docker composer
这都是用docker了那容器编排起码也要用一下,这里我就用docker composer了。安装的相关命令如下:
- 运行以下命令下载 Docker Compose 的当前稳定版本:
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/
-
将可执行权限应用于二进制文件:
chmod +x /usr/local/bin/docker-compose
-
测试安装结果:
docker-compose --version
如果展现下面提示则代表
docker-compose
安装完成。[root@localhost vagrant]# docker-compose --version docker-compose version 1.29.2, build 5becea4c [root@localhost vagrant]#
总结
这样我们就完成了Vagrant+VirtualBox环境配置,也在虚拟机中配置好了Java环境和docker。
今天的文章Windows下搭建Vagrant+VirtualBox环境分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/16542.html