效率工具-快速创建虚拟机,Vagrant真香!

news2024/9/24 7:21:36

工欲善其事,必先利其器,开发环境和开发工具就是我们开发人员的剑,所以我们需要一个快并且好用的剑。本文是向大家介绍虚拟机创建vagrant,它能够实现开发人员本机快速创建虚拟机,能够带来高效学习各种技术价值。


1 Vagrant简介

1.1 vagrant百科

Vagrant是一个基于Ruby的工具,用于创建和部署虚拟化开发环境。它使用Oracle的开源VirtualBox虚拟化系统,使用 Chef创建自动化虚拟环境。

1.2 vagrant用处

vagrant是一款构建虚拟开发环境的工具,支持window,linux,mac,总有一款适合你。并且vagrant 可以把配置好的环境打包成一个box,分享给其他人直接使用,非常方便。

vagrant的精髓在一个Vagrantfile 里面,和docker的Dockerfile功能上一样。我们只需要把需要安装部署的步骤写在 Vagrantfile里面,便可以实现轻松部署。vagrant 还支持把当前系统做成一个.box 后缀命名的镜像,类似 docker 的 image,可轻松实现环境的移植。

2.虚拟环境

2.1官网查找最新版本

  • VirtualBox 虚拟器 : https://www.virtualbox.org/

  • Vagrant : http://www.vagrantup.com/

  • box(相当于基础linux镜像):https://app.vagrantup.com/boxes/search

  • 先安装virtualbox 再安装vagrant,傻瓜式安装,安装完成后需要重启计算机

2.1本地安装实操

在cmd命令窗口输入 vagrant 命令弹出如下内容表示 vagrant 安装成功

通过Vagrant安装虚拟机:

  • 创建一个空的目录,cmd切换到该目录中,然后执行vagrant init centos/7 会创建Vagrantfile文件

  • 执行vagrant up第一次执行的时候会远程下相关的镜像文件,并启动虚拟机。

  • 连接虚拟机通过vagrant ssh连接

网络配置

找到对应的Vagrantfile文件

ipconfig查看当前主机给虚拟机分配的网关的网段:

VirtualBox 的ip地址是192.168.56.*,所以修改后的ip为:192.168.56.10(10为自定义,写100也行)

重点:修改完毕后,必须使用cmd命令vagrant up重新启动才能生效

重启后xshell测试:需要提供私钥

私钥地址:

2.3Xshell连接

su root切换用户

root默认密码vagrant,搞定!

3.Docker环境

参考官方文档安装:https://docs.docker.com/engine/install/centos/

卸载原有的环境:

sudo yum remove docker \

docker-client \

docker-client-latest \

docker-common \

docker-latest \

docker-latest-logrotate \

docker-logrotate \

docker-engine

安装对应的依赖环境和镜像地址

sudo yum install -y yum-utils

sudo yum-config-manager \

--add-repo \

https://download.docker.com/linux/centos/docker-ce.repo

安装过慢设置镜像

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

直接安装docker CE

sudo yum install -y docker-ce docker-ce-cli containerd.io

表示安装成功

启动docker服务

sudo systemctl start docker

查看docker的版本

sudo docker version

补充:通过官方的镜像地址下载docker会比较慢,

配置阿里云的镜像地址:

cd /etc/docker/

vim daemon.json

{

"registry-mirrors": [

"https://aa25jngun.mirror.aliyuncs.com",

"https://docker.mirrors.ustc.edu.cn"

]

}

重启docker服务

sudo service docker restart

开机启动docker

sudo systemctl enable docker

4.基础软件安装

4.1mysql安装

项目软件统一安装在 /mydata 目录下

docker拉取镜像命令

docker pull mysql:5.7

docker安装MySQL命令

docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7

修改MySQL的配置文件 vim /mydata/mysql/conf/my.cnf

[client]

default-character-set=utf8

[mysql]

default-character-set=utf8

[mysqld]

init_connect="SET collation_connection = utf8_unicode_ci"

init_connect="SET NAMES utf8"

character-set-server=utf8

collation-server=utf8_unicode_ci

skip-character-set-client-handshake

skip-name-resolve

设置容器自启动

docker update --restart=always mysql

补充:mysql官方提供的测试数据,方便自己学习练习:https://dev.mysql.com/doc/index-other.html

4.2redis安装

拉取Redis最新版本镜像

docker pull redis

先创建对应的Redis的映射配置文件

mkdir -p /mydata/redis/conf

touch /mydata/redis/conf/redis.conf

创建容器命令

docker run -d -p 6379:6379 --name mall-redis -v /mydata/redis/data:/data -v /mydata/redis/conf:/etc/redis redis redis-server /etc/redis/redis.conf

启动后测试连接,此处“4e”是容器前几个字母,根据实际情况变化:

docker exec -it 4e redis-cli

设置容器自启动

docker update --restart=always mall-redis

4.3nacos安装

拉取对应的镜像文件

docker pull nacos/nacos-server:1.4.2

通过镜像文件运行nacos容器

docker run -d --env MODE=standalone --name nacos -v /mydata/nacos/conf:/home/nacos/conf -p 8848:8848 nacos/nacos-server:1.4.2

启动容器后,测试访问:

http://192.168.56.100:8848/nacos 默认的账号密码:nacos nacos

重点:如果服务没有启动,查看镜像日志

docker logs nacos

安装中如果出现了如下的提示

文件上传到虚拟机中/mydata/nacos/conf目录下

📎nacos-logback.xml📎nacos-mysql.sql📎schema.sql

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/400394.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

我的投稿之旅

一、铁道科学与工程学报选择这个期刊的原因是:感觉影响因子较低,而且实验室有师兄师姐中过这个期刊,所以抱着试一试的心态投了。投稿之前需要去官网注册账号由于方向不一致,被退稿了“您的稿件内容不属于本刊刊载范畴,…

Content-Type (MIME) el-upload文件、图片上传 | 文件改名 | 大文件 | 文件下载

MIME 为数据格式标签;最初 MIME 是用于电子邮件系统的,后来 HTTP 也采用了这一方案。 在HTTP协议消息头中,使用Content-Type来表示请求和响应中的媒体类型信息。 Content-Type:type/subtype ;parametertype 主类型,任…

【LeetCode每日一题】——135.分发糖果

文章目录一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【解题思路】七【题目提示】八【时间频度】九【代码实现】十【提交结果】一【题目类别】 贪心算法 二【题目难度】 困难 三【题目编号】 135.分发糖果 四【题目描述】 n 个孩子站成一…

【论文研读】无人机飞行模拟仿真平台设计

无人机飞行模拟仿真平台设计 摘要: 为提高飞行控制算法的研发效率,降低研发成本,基于数字孪生技术设计一个无人机硬件在环飞行模拟仿真平台。从几何、物理和行为3个方面研究无人机数字模型构建方法,将物理实体以数字化方式呈现。设计一种多元融合场景建模法,依据属…

Java--JMH--性能测试--测试软件运行效率/时间--StopWatch

写在前面: 很多时候想要测试代码运行时间,或者比较2个运行的效率。 最简单的方法就是Sytem.currentTimeMillis记录2开始和结束时间来算 但是Java 代码越执行越快,放在后面的方法会有优势,这个原因受留个眼,以后研究。大概有受类加…

RedisCluster集群模式下master宕机主从切换期间Lettuce连接Redis无法使用报错Redis command timed out的问题

背景springboot使用redisTemplate访问redis cluster(三主三从),底层是Lettuce,当其中一个master挂掉后,slave正常升为master,程序报错 Redis commond timed out after 6 seconds。解决手动连接集群&#xf…

【三维几何学习】网格上低分辨率的分割结果到高分辨率的投影与可视化

网格上低分辨率的分割结果到高分辨率的投影与可视化引言一、到高分辨率的投影1.1 准确率1.2 主要代码1.3 投影核心代码二、可视化代码引言 三角网格的结构特性决定了其仅用少量三角形即可表示一个完整的3D模型。增加其分辨率可以展示更多模型的形状细节。对于网格分割来说&…

可复用测试用例描述要素

测试用例的输入、操作、预期结果和评估标准、前提条件是测试用例不可少的要素,但对于可复用测试用例而言,这是不够的。本文在文献规定的测试用例要素基础上,增加了新的内容。从而从多个角度完整地对可复用测试用例进行了描述,为可…

从0开始学IntelliJ Plugin开发:一、配置环境

前言 作为一个javaer,相信大家平时开发都多多少少使用了一些idea的插件,那么在享受插件便利的同时,有没有好奇插件是如何开发的 笔者怀着这份好奇开始了idea插件开发学习之路,同时把学习的心得体会整理成系列文章作为学习笔记供…

探访人工智能领跑者:纷享销客携手30+TOP高科技企业走进旷视科技

拥有全球规模领先的计算机视觉研究院; 揽获28项世界顶级AI竞赛冠军; 世界级人工智能公司; 没错,它就是人工智能行业的务实者和领跑者,旷视科技。 3月3日,北京软件和信息服务业协会联合纷享销客,…

macOS 13.3 Beta 3 (22E5236f)With OpenCore 0.9.1开发版 and winPE双引导分区原版镜像

原文地址:http://www.imacosx.cn/112494.html(转载请注明出处)镜像特点完全由黑果魏叔官方制作,针对各种机型进行默认配置,让黑苹果安装不再困难。系统镜像设置为双引导分区,全面去除clover引导分区&#x…

ViT:Transformer在CV领域的开山之作

ViT引发的变革 Transformer最开始是作为自然语言处理(英语: Natural Language Processing ,缩写作 NLP)领域的模型框架,在该领域其可谓大放异彩,然而自始至终都有人在不断尝试将Transformer应用到视觉领域…

快速入门深度学习1(用时1h)

速通《动手学深度学习》1写在最前面0.内容与结构1.深度学习简介1.1 问题引入1.2 思路:逆向思考1.3 跳过1.4 特点1.5 小结2.预备知识(MXNet版本,学错了。。。。)2.1 获取和运行本书的代码2.2 数据操作2.2.1 略过2.2.2 小结2.3 自动…

c/c++开发,无可避免的模板编程实践(篇九)-c++11的新顺序容器

一、std::array数组容器 1.1 数组的适配器-std::array std::array 是封装固定大小数组的容器&#xff0c;是c11标准库新引入的顺序容器&#xff0c;定义于头文件 <array>。 template <class T,std::size_t N > struct array; 此容器是一个聚合类型&#xff0c;其…

ChatPDF解放双手帮你解读PDF文档

一、先介绍一下吧 chatPDF是一个解读pdf文档的AI模型&#xff0c;然后封装出来的工具。如论文、合同、文书、书籍等&#xff0c;只要是PDF都能搞定&#xff0c;可支持120页【2023.3.9】的文件。据说之前支持200页&#xff0c;反正在变 最新爆火的ChatPDF&#xff0c;短短5天就…

nginx 主动健康检查搭建详解(nginx_upstream_check_module)

版本信息 nginx: 1.21 1.下载nginx_upstream_check_module模块 nginx_upstream_check_module-master.zip wget https://codeload.github.com/yaoweibin/nginx_upstream_check_module/zip/master 解压到 2. 安装nginx 略 3. 补丁安装 由于我这边安装nginx版本为nginx1.21…

你是使用什么工具调试 golang 程序的?

写过 C/C 的都是到&#xff0c;调试程序的时候通常使用 gdb 工具来进行调试&#xff0c;用起来可爽了&#xff0c;那么 gdb 是否也适合 golang 程序的调试的 我个人到是通常使用 dlv 来进行 golang 程序的调试&#xff0c;分享一波 dlv 是什么&#xff0c;全称 Delve Delve …

KiCad 编译

KiCad 编译 因为最新项目需要&#xff0c;所以看了一下KiCad的编译&#xff0c;这里介绍的是64位电脑的编译&#xff0c;32位小伙伴请绕道官网看教程呦。 您可以在KiCad内查看基本的编译教程。 我这里也是参考的官网编译教程进行的编译&#xff0c;接下来让我们一起看看吧。…

论文 | 期刊 | 专业名词解释

文章目录1. EI2. IEEE Xplore3. CN期刊3.2 CN期刊后面的数字代表什么3. SCI3.1 影响因子先立个帖子&#xff0c;后续用到的话随时更新1. EI 工程索引(EI)是由美国工程信息公司(Engineering information Inc.)编辑出版&#xff0c;历史上最悠久的一部大型综合性检索工具。 《工…

03 SWMM快速入门案例的设施参数设置与批量设置

文章目录1 雨量计1.1 雨量计基础设置1.2 雨量计数据来源2 汇水区2.1 参数讲解2.2 设置结果3 检查井3.1 参数讲解3.2 批量设置4 管道4.1 参数讲解4.2 设置结果5 出水口上一篇博客中我们已经完成了各类设施的绘制&#xff0c;本节对他们的参数进行设置1 雨量计 1.1 雨量计基础设…