网站首页 > 技术文章 正文
在当今的数字时代,虚拟机成为了许多开发者、测试人员以及技术爱好者的重要工具。Vagrant 和 VirtualBox 的组合提供了一种强大且易于使用的方式来创建和管理虚拟机。本指南将带你逐步了解如何使用这两个工具创建一个人人都可以用的虚拟机。
一、准备工作
vagrant -v
Vagrant 2.4.1
VirtualBox 图形用户界面
版本 5.2.26 r128414 (Qt5.6.2)
Copyright ? 2019 Oracle Corporation and/or its affiliates. All rights reserved
创建虚拟机并指定国内镜像
打开命令提示符或终端窗口。选择一个合适的目录来创建你的 Vagrant 项目。
例如,可以在你的用户目录下创建一个名为 “vagrant_project” 的文件夹:
mkdir ubuntu1
cd ubuntu1
使用以下命令添加一个指定国内镜像的 box:例如,对于 Ubuntu 的镜像从清华大学镜像源添加:
vagrant box add ubuntu/bionic64 https://mirrors.tuna.tsinghua.edu.cn/ubuntu-cloud-images/bionic/current/bionic-server-cloudimg-amd64-vagrant.box
Index of /ubuntu-cloud-images/bionic/current/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror
启动虚拟机
使用以下命令初始化一个新的 Vagrant 环境:
vagrant init ubuntu/bionic64(这里指定你刚刚添加的 box 名称)
启动虚拟机:
vagrant up
一旦虚拟机启动成功,你可以使用以下命令连接到虚拟机:vagrant ssh
停止和删除虚拟机
当你完成使用虚拟机时,可以使用以下命令停止它:
vagrant halt
如果你想删除虚拟机,可以运行:
vagrant destroy
vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Importing base box 'ubuntu/bionic64'...
==> default: Matching MAC address for NAT networking...
==> default: Setting the name of the VM: ubuntu1_default_1728219102530_35042
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
default: Adapter 1: nat
==> default: Forwarding ports...
default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> 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: Warning: Connection aborted. Retrying...
default: Warning: Connection reset. Retrying...
default:
default: Vagrant insecure key detected. Vagrant will automatically replace
default: this with a newly generated keypair for better security.
default:
default: Inserting generated public key within guest...
default: Removing insecure key from the guest if it's present...
default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Mounting shared folders...
default: /vagrant => C:/vm/ubuntu1
PS C:\vm\ubuntu1> vagrant ssh
Welcome to Ubuntu 18.04.6 LTS (GNU/Linux 4.15.0-212-generic x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
System information as of Sun Oct 6 12:53:45 UTC 2024
System load: 0.77 Processes: 103
Usage of /: 3.0% of 38.70GB Users logged in: 0
Memory usage: 13% IP address for enp0s3: 10.0.2.15
Swap usage: 0%
Expanded Security Maintenance for Infrastructure is not enabled.
0 updates can be applied immediately.
Enable ESM Infra to receive additional future security updates.
See https://ubuntu.com/esm or run: sudo pro status
New release '20.04.6 LTS' available.
Run 'do-release-upgrade' to upgrade to it.
vagrant@ubuntu-bionic:~$
二、创建 Vagrant 项目(vagrantfile)
“vagrant_project” 的文件夹。在命令提示符或终端窗口中输入以下命令创建文件夹:
mkdir vagrant_project
然后进入该文件夹:
cd vagrant_project
三、配置 Vagrantfile
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64" # 选择一个基础的操作系统镜像
config.vm.network "private_network", ip: "192.168.33.10" # 设置虚拟机的 IP 地址
end
你可以根据需要修改操作系统镜像、网络配置等参数。Vagrant 支持多种操作系统镜像,可以在 Vagrant Cloud(https://app.vagrantup.com/boxes/search)上查找更多可用的镜像。例如,如果你想使用 CentOS 镜像,可以将config.vm.box的值改为 “centos/7”。
对于网络配置,你可以选择不同的网络模式,如 “private_network”(私有网络)、“public_network”(公共网络)等。具体的网络设置取决于你的需求。
四、启动虚拟机
运行以下命令启动虚拟机:vagrant up
Vagrant 将下载所选的操作系统镜像(如果本地没有)并启动虚拟机。这个过程可能需要一些时间,具体取决于你的网络速度和镜像大小。在启动过程中,你可以看到 Vagrant 输出的各种信息,包括镜像下载进度、虚拟机配置等。
五、连接到虚拟机
这将通过 SSH 连接到虚拟机,你可以像在任何 Linux 服务器上一样执行命令。例如,你可以使用ls命令列出当前目录下的文件,使用cd命令切换目录等。
六、停止和删除虚拟机
vagrant halt
这将优雅地停止虚拟机,保存其状态。
这将删除虚拟机及其所有相关文件。在执行此命令之前,请确保你不再需要该虚拟机,因为此操作是不可逆的。
通过以上详细步骤,你可以使用 Vagrant 和 VirtualBox 轻松创建一个虚拟机。无论是进行开发、测试还是学习,这个组合都提供了一种便捷的方式来管理虚拟机环境。希望本指南对大家有所帮助,让每个人都能轻松使用虚拟机。
在 Vagrantfile 中配置 VirtualBox 虚拟机的详细步骤
以下是在Vagrantfile中配置 VirtualBox 虚拟机的详细步骤:
Vagrant.configure("2") do |config|
end
config.vm.box = "ubuntu/bionic64" # 这里可以替换为你想要的镜像名称,比如 centos/7、debian/stretch 等
config.vm.network "private_network", ip: "192.168.33.10" # 设置一个静态 IP 地址
config.vm.synced_folder "path_on_host", "path_on_vm"
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048" # 设置虚拟机内存为 2048MB
vb.cpus = 2 # 设置虚拟机使用 2 个 CPU 核心
end
config.vm.define "my_vm_name" do |my_vm|
my_vm.vm.hostname = "my-vm-hostname"
end
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.synced_folder "./host_folder", "/mnt/guest_folder"
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
vb.cpus = 2
end
config.vm.define "my_vm_name" do |my_vm|
my_vm.vm.hostname = "my-vm-hostname"
end
end
通过以上步骤,你可以在Vagrantfile中对 VirtualBox 虚拟机进行详细的配置,以满足你的特定需求。
猜你喜欢
- 2024-10-31 免费开源虚拟机VirtualBox 7.0.12发布:修复TPM和黑屏问题
- 2024-10-31 Java虚拟机 java虚拟机的工作原理
- 2024-10-31 Java界大名鼎鼎的HotSpot虚拟机的演进之路
- 2024-10-31 虚拟机安装Android系统,喜欢折腾的人可以一试
- 2024-10-31 免费开源虚拟机VirtualBox 7.0.6发布
- 2024-10-31 开发必备-虚拟机(OracleVMViratualBox)的安装(附图详解)
- 2024-10-31 7.6 从模板部署虚拟机操作过程 模板和虚拟机的区别
- 2024-10-31 关于oracle virtualbox虚拟机的一些问题跟chatgpt交流的日志
- 2024-10-31 一台电脑如何完成一个局域网的应用设置——用虚拟机
- 2024-10-31 VirtualBox7中安装macOS big sur,在windows10&11上「保姆级教程」
你 发表评论:
欢迎- 633℃几个Oracle空值处理函数 oracle处理null值的函数
- 626℃Oracle分析函数之Lag和Lead()使用
- 614℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 608℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 606℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 599℃【数据统计分析】详解Oracle分组函数之CUBE
- 588℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 574℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- oracle 19cOCM认证有哪些内容(oracle认证ocm月薪)
- Oracle新出AI课程认证,转型要持续学习
- oracle 表的查询join顺序,可能会影响查询效率
- Oracle DatabaseAmazon Web Services正式可用,Oracle数据库上云更容易了
- Oracle 19.28 RU 升级最佳实践指南
- 汉得信息:发布EBS系统安装启用JWS的高效解决方案
- 如何主导设计一个亿级高并发系统架构-数据存储架构(三)
- Java 后端开发必看!工厂设计模式轻松拿捏
- ORA-00600 「25027」 「x」报错(抱错孩子电视剧 爸爸是武术 另一个爸爸是画家)
- 新项目终于用上了jdk24(jdk新建项目)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)