【实战记录】 vagrant+virtualbox+docker 轻松用虚拟机集成组件

news2024/12/23 19:13:06

用途

最近要学一大堆组件,不想直接安装本机上,然后gpt说:你可以用vagrant起个虚拟机(然后docker拉取各种组件的镜像);或者k8s

实战的整体思路

首先安装virtualbox和vagrant。然后cmd依次键入三条命令

安装虚拟机

vagrant init centos/7

启动虚拟机

vagrant up

连接虚拟机

vagrant ssh

简明版教程到此结束,接下来你就可以在windows的cmd里面使用虚拟机了。

对了还有个优雅关闭虚拟机的命令(在那之前你需要输入exit,才虚拟机中退出)

关闭虚拟机

vagrant half

技术选型理由

想知道其中细节(坑,请往下看。我会都告诉你。

为什么选择虚拟机

这是我的理由,你的理由是什么呢?欢迎在评论区分享

今天的目的是集成zookeeper

但不想直接在本机安装

公司电脑不让安装docker desktop

搜了gpt说是k8s或者 vagrant结合virtualbox

为什么引入vagrant

因为只是virtualbox的话,用户玩不明白,引入一个辅助我们去玩的应用vagrant。

不安装vagrant就是自己去网上找镜像来导入安装。

一般就是安了virtualbox之后,就是找各种镜像,然后iso导入,然后又是图形界面,有事很久很久,又是配时区配中文配这配那,启动又慢,流程又长(对于博主本人来说是这样的),很长久的一段时间,起个虚拟机都让我叫苦不迭。因为可能是镜像文件找错了,或者跟着网上哪一布教程走错了,增强功能安装失败(那我要图形界面干什么?)

为什么选择centos

我们安装centos,你要问我为什么不安装ubuntu

因为安了之后,我没有找到相关的教程让我把apt(安装工具)的仓库地址很好地配起来,导致没有办法安装docker

然后yum(也是一个安装的命令)也不完美适用于ubuntu,也是要配仓库地址,这个相关教程也很少,自己探索了许久,甚至把ubuntu版本对应名称这种细枝末节的东西都探索出来了,可又有什么用呢?还是配不明白。

那就老老实实按照这个教程上的安装centos,然后yum(他是完美适配centos的)配一下,纵享丝滑。

软件安装

软件

下载地址

  • virtualbox官方下载

  • vagrant 官方下载自己系统的版本 ,我这里是windows

安装

就是下一步下一步,点到最后。最后的效果就是命令行输入vagrant,有反应,说明安装好了;点击virtualbox,可以打开页面。

镜像安装部署应用

1、镜像初始化(下载)[vagrant init centos/7]+[vagrant up]

vagrant init centos/7
vagrant up

我们执行vagrant init centos/7,他会生成一个配置文件,
再执行vagrant up启动的时候,他会看自己本地镜像库里面没有这个镜像,就会去云端拉取下载。

然后会从vagrant 的镜像库缓慢地下载这个镜像,我们可以中断这个下载命令,然后自己直接把他的链接复制下来,到网页里面下载,或者用迅雷什么的。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
下载链接:https://cloud.centos.org/centos/7/vagrant/x86_64/images/CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box

2、添加镜像 [vagrant box add centos/7 …]

要告诉vagrant,这个东西就是centos/7的镜像,添加进去。

添加镜像命令

vagrant box add centos/7 C:\Users\xxxx\Downloads\CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box

C:\Users\xxxx\Downloads\CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box 《–这里你需要替换为你自己的文件路径

3、镜像重新初始化 [vagrant init centos/7]

再执行vagrant init centos/7,他如果报错,请到相应目录下找到Vagrantfile(这是个配置文件,会在初始化的时候生成。),然后删除。
执行失败

之后再执行vagrant init centos/7

执行成功

这意味着初始化成功了!

4、原神 虚拟机启动[vagrant up]

cmd执行命令

vagrant up
cmd启动成功了。

在这里插入图片描述

打开virtualbox,启动成功

在这里插入图片描述

5、连接

vagrant ssh

在这里插入图片描述

组件的安装及端口转发

docker使用yum安装、mysql使用docker拉取

VirtualBox和vagrant快速创建虚拟机安装docker_vagrant virtualbox-CSDN博客

docker及mysql的组件的安装可见这篇博客

在这里插入图片描述

端口配置

在这里插入图片描述

在virtualbox这里配置,一下即可。我们点击右上角+号,添加一个端口转发规则,相当于把虚拟机3315转发到主机的3315端口。

在这里插入图片描述

验证

在这里插入图片描述

关闭虚拟机

vagrant halt

在这里插入图片描述

ps:虚拟机关掉了,docker也就关掉了奥。下次再开起来的时候要重新开。还有端口转发的配置,也需要重新配置。

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

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

相关文章

网络安全全栈培训笔记(53-WEB攻防-通用漏洞CRLF注入URL重定向资源处理拒绝服务)

第53天 WEB攻防-通用漏洞&CRLF注入&URL重定向&资源处理拒绝服务 知识点: 1、CRLF注入-原理&检测&利用 2、URL重定向-原理&检测&利用 3、Web拒绝服务-原理&检测&利用 #下节预告: 1、JSONP&CORS跨域 2、域名安全…

算法通关村第十六关—滑动窗口经典问题(白银)

滑动窗口经典问题 一、最长子串专题 1.1 无重复字符的最长子串 LeetCode3给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。例如: 输入:s"abcabcbb" 输出:3 解释:因为无重复字符的最长子串是…

Mindspore 公开课 - CodeGeeX

CodeGeeX: 多语言代码生成模型 CodeGeeX 是一个具有130亿参数的多编程语言代码生成预训练模型。CodeGeeX采用华为MindSpore框架实现,在鹏城实验室“鹏城云脑II”中的192个节点(共1536个国产昇腾910 AI处理器)上训练而成。截至2022年6月22日&…

HNU-算法设计与分析-实验2

算法设计与分析实验2 计科210X 甘晴void 202108010XXX 目录 文章目录 算法设计与分析<br>实验21 用动态规划法实现0-1背包问题重述想法代码验证算法分析 2 用贪心算法求解背包问题问题重述想法代码验证算法分析 3 半数集问题&#xff08;实现题2-3&#xff09;问题重述…

Vue3+Vite项目搭建

为什么选择vite而不是vue-cli&#xff1a; vite下一代前端开发与构建工具 vite创建的项目默认vue3 优势&#xff1a; 开发环境中&#xff0c;无需打包&#xff0c;可快速的冷启动 轻量快速的热重载&#xff08;HMR&#xff09; 真正的按需编译&#xff0c;不在等待整个应用…

SpringBoot+thymeleaf实战遇到的问题

目录 一、控制台&#xff1a; 二、数据库查询异常&#xff1a; 三、前后端错误校验 四、在serviceImp中需要添加一个eq条件&#xff0c;表示和数据库中的哪个字段进行比较&#xff0c;否则会查出所有数据&#xff0c;导致500 五、使用流转换数据更简洁 六、重复报错&…

Python教程44:海龟画图turtle画卡塔尔世界杯吉祥物

---------------turtle源码集合--------------- Python教程42&#xff1a;海龟画图turtle画海绵宝宝 Python教程41&#xff1a;海龟画图turtle画蜡笔小新 Python教程40&#xff1a;使用turtle画一只杰瑞 Python教程39&#xff1a;使用turtle画美国队长盾牌 Python教程38&a…

国内镜像源配置方法(包括临时和永久方法)

国内镜像源&#xff1a; 阿里云 http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/豆瓣 http://pypi.douban.com/simplePython官方 https://pypi.python.org/simple/v2ex http://pypi.v2ex.com/simple/中国科学院 http://pypi.mi…

Web server failed to start. Port 8080 was already in use. 端口被占用

Web server failed to start. Port 8080 was already in use. 端口被占用。 1、cmd回车打开命令窗口 查看端口号是否被占用 netstat -ano|findstr “8080” 2、查看进程号对应的进程名称 tasklist|findstr “12760” 3、直接杀死进程 taskkill /F /pid 12760或 taskkill /F …

腾讯云服务器租用价格表_2024新版报价

腾讯云服务器租用价格表&#xff1a;轻量应用服务器2核2G3M价格62元一年、2核2G4M价格118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c;2核4G5M带宽756元三年、轻量4核8G12M服务器446元一年、646元15个月&#xff0c;云服务器CVM S5实例2核2G配置280.8元一年…

Linux-ARM裸机(十一)-UART串口通信

无论单片机开发还是嵌入式 Linux 开发&#xff0c;串口都是最常用到的外设。可通过串口将开发板与电脑相连&#xff0c;然后在电脑上通过串口调试助手来调试程序。还有很多的模块&#xff0c;比如蓝牙、GPS、 GPRS 等都使用的串口来与主控进行通信的&#xff0c;在嵌入式 Linux…

java处理16进制字符串的一些方法和基础知识

前言&#xff1a;本篇文章是对于基础数据的处理的一些简单经验总结里边包含了一些基础的数据储存和数据转化的一些知识&#xff0c;同样也包含有部分快捷的数据处理方法。主要用于个人知识的一个记录和方便进行对应的数据转换和处理。 1、bit,字节和字的关系 1.1 bit和字节的…

leetcode 24两两交换链表中的节点

题目 给你一个链表&#xff0c;两两交换其中相邻的节点&#xff0c;并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题&#xff08;即&#xff0c;只能进行节点交换&#xff09;。 思想 对于操作链表节点的时候&#xff0c;首先需要就是创建一个虚拟的…

表单验证 ---- 在Vue2中使用ElementUI进行表单验证

目录 前言 给表单绑定对应属性 在data中定义数据对象和表单的定义规则 与数据对象双向绑定 对整个表单进行验证 前言 在做项目时&#xff0c;对于表单进行验证是我们必不可少的 例如 搭建一个基本的登录界面 <div class"form"><h1>登录</h1>&…

OPT(erlang)打造一套缓存系统(一)

缓存的设计 这个简易缓存存储的是键/值对&#xff0c;其中键与键之间不得重复&#xff0c;并且每个键只能映射到一个值。这个设计背后的核心思想是为写人缓存的每一个值都分配一个独立的存储进程再将对应的键映射至该进程。你可能会对这种为每个值分配一个进程的设计感到惊讶&…

2024年学鸿蒙开发就业前景怎么样?

随着科技的不断进步&#xff0c;鸿蒙系统作为华为自主研发的操作系统&#xff0c;逐渐引起了人们的关注。 2024年&#xff0c;鸿蒙开发就业前景如何&#xff1f; 对于那些对鸿蒙开发感兴趣并希望在这一领域寻找职业发展的人来说&#xff0c;这是一个非常重要的问题。 首先&a…

【电子取证篇】蘇小沐的电子取证工具合集在线文档

【电子取证篇】蘇小沐的电子取证工具合集在线文档 弄成了在线表格&#xff0c;记得及时保存&#xff1b;工具永远只是辅助&#xff0c;但不要过多依赖自动化&#xff0c;有难度说明可以提升&#xff0c;既要不断学习也要不停思考&#xff0c;知行合一—【蘇小沐】 【腾讯文档…

springboot项目启动时横幅修改

正常情况下&#xff0c;springboot启动时的横幅&#xff08;banner&#xff09;长这样 自定义banner 在resource下创建banner.txt&#xff0c;写入想要修改的内容即可 程序无bugSpring Boot Version: ${spring-boot.version}// _ooOoo_ …

力扣-刷MySQL(详细解析)

&#x1f389;欢迎您来到我的MySQL基础复习专栏 ☆* o(≧▽≦)o *☆哈喽~我是小小恶斯法克&#x1f379; ✨博客主页&#xff1a;小小恶斯法克的博客 &#x1f388;该系列文章专栏&#xff1a;重拾MySQL &#x1f379;文章作者技术和水平很有限&#xff0c;如果文中出现错误&am…

16 命令行模式

命令行模式 将行为的执行与与行为的调用通过命令分离&#xff0c;行为的的调用者不需要知道具体是哪个类执行的&#xff0c;他们之间通过命令连接。 demo的目录结构 命令的执行者&#xff08;接口&#xff09; package behavioralpattern.commandpattern.actuator;import ja…