3分钟搞懂什么是Docker

news2024/11/16 14:22:00

Docker,一种可以将软件打包到容器中并在任何环境中可靠运行的工具。但什么是容器以及为什么需要容器呢?今天就来一起学快速入门一下Docker吧!希望本文对您有所帮助。

假设您使用 Cobol 构建了一个在某种奇怪风格的 Linux 上运行的应用程序。您想与您的朋友分享这个应用程序,但他有一个完全不同的系统。那么问题就变成了,我们如何在任何机器上复制我们的软件所需的环境?

打包应用程序的一种方法是使用虚拟机,在虚拟机中模拟硬件,然后安装所需的操作系统和依赖项。

这允许我们在同一基础设施上运行多个应用程序。然而,由于每个虚拟机都运行自己的操作系统,因此它们往往体积庞大且速度缓慢。

现在,Docker 容器在概念上与虚拟机非常相似,但有一个关键区别。

容器只虚拟化操作系统,而不是虚拟化硬件。或者换句话说,所有应用程序或容器都由单个内核运行,这使得几乎所有内容都更快、更高效。

三个基本元素。

Docker世界包含三个基本元素:

  • Dockerfile
  • 镜像
  • 容器

Dockerfile 就像 DNA。它只是告诉 Docker 如何构建镜像的代码。镜像本身就是软件的快照,以及一直到操作系统级别的所有依赖项。该镜像是不可变的,它可用于启动多个容器,这是您在现实世界中运行的实际软件。

创建一个 docker 文件,并使用 from 从现有模板(如 Ubuntu)开始。

该基础镜像是从云端下载的,您还可以将自己的镜像上传到各种不同的 Docker 注册表。

从那里,您可能需要使用 run 来运行将依赖项安装到映像中的终端命令。您可以设置环境变量并执行各种其他操作,然后您要做的最后一件事就是设置启动容器时执行的默认命令。

现在,我们可以通过运行 docker build 命令来创建镜像文件。

它会遍历 Dockerfile 中的每个步骤来逐层构建镜像。

然后,我们可以使用 docker run 命令将此映像作为容器变为现实。

由于您的应用程序需要更多资源,您可以在多台计算机、多个云、本地或任何您想要可靠的地方运行它。

技术前沿拓展

前端开发,你的认知不能仅局限于技术内,需要发散思维了解技术圈的前沿知识。细心的人会发现,开发内部工具的过程中,大量的页面、场景、组件等在不断重复,这种重复造轮子的工作,浪费工程师的大量时间。

介绍一款程序员都应该知道的软件JNPF 快速开发平台,很多人都尝试用过它,它是功能的集大成者,任何信息化系统都可以基于它开发出来。

这是一个基于 Java Boot/.Net Core 构建的简单、跨平台快速开发框架。前后端封装了上千个常用类,方便扩展;集成了代码生成器,支持前后端业务代码生成,实现快速开发,提升工作效率;框架集成了表单、报表、图表、大屏等各种常用的 Demo 方便直接使用;后端框架支持 Vue2、Vue3。如果你有闲暇时间,可以做个知识拓展。

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

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

相关文章

如何通过京东工业商品API接口获取商品详情

一、引言 京东工业是一个专注于工业品采购和销售的电商平台,为工业领域的用户提供了一站式的采购解决方案。为了方便工业品供应商和开发者获取商品详情,京东工业提供了商品API接口。本文将详细介绍如何通过京东工业商品API接口来获取商品详情&#xff0…

【Python篇】python库讲解(pickle | random | numpy)

文章目录 🎄pickle模块🛸样例 🎄random🛸样例 🎄numpy库🛸例子 🎄pickle模块 pickle模块是Python标准库中的一个模块,用于序列化和反序列化Python对象。它可以将Python对象转化为字…

高翔《自动驾驶与机器人中的SLAM技术》第九、十章载入静态地图完成点云匹配重定位

修改mapping.yaml文件中bag_path: 完成之后会产生一系列的点云文件以及Keyframe.txt文件: ./bin/run_frontend --config_yaml ./config/mapping 生成拼接的点云地图map.pcd文件 : ./bin/dump_map --pose_sourcelidar 。、 完成第一次优…

halcon创建画布,并在画布上绘制显示

Halcon的画布主要用于图像显示和处理。以下是一个简单的使用Halcon画布的例子: 1.创建一个窗口: dev_open_window( Row, Column, Width, Height, Background : WindowHandle) 默认为:dev_open_window (0, 0, 512, 512, black, WindowHandle) **创建一个大小为512…

二、Java基础语法

day02 - Java基础语法 1. 注释 ​ 注释是对代码的解释和说明文字。 Java中的注释分为三种: 单行注释: // 这是单行注释文字多行注释: /* 这是多行注释文字 这是多行注释文字 这是多行注释文字 */ 注意:多行注释不能嵌套使用…

Ganache结合内网穿透实现远程或不同局域网进行连接访问

文章目录 前言1. 安装Ganache2. 安装cpolar3. 创建公网地址4. 公网访问连接5. 固定公网地址 前言 Ganache 是DApp的测试网络,提供图形化界面,log日志等;智能合约部署时需要连接测试网络。 Ganache 是一个运行在本地测试的网络,通过结合cpol…

02-线程的两种创建方式继承Thread类和实现Runnable接口

继承Thread类创建线程 获取线程对象 编写一个类继承Thread类并在重写的run方法中编写业务逻辑代码,那么这个类就是一个线程类 Runnable接口的run方法没有抛出任何异常,所以子类重写run方法时也不能抛出任何异常,对于程序执行中遇到异常时只能捕获不能抛出 // 重写方法抛出的…

教你一招,用AI免费一分钟生成3D海报!

近些年,人工智能(AI)凭借其深远的影响和技术创新,引发了各领域的大变革,揭开了设计创作新时代的序幕。设计行业是这场变革的主要受益者之一。以海报设计为例,它过去一直需要专业设计师的精心构思和设计&…

工厂如何通过设备健康管理系统提高设备可靠性

在现代工厂运营中,设备可靠性对于保持生产效率和降低成本至关重要。然而,许多工厂面临设备故障和停机时间的挑战,这对生产计划和盈利能力产生了负面影响。为了解决这一问题,越来越多的工厂正在采用设备健康管理系统来提高设备的可…

鸿鹄云商:Java商城引领商业模式的潮流,免费搭建多种商城模式

java SpringCloud版本b2b2c鸿鹄云商平台全套解决方案 使用技术: Spring CloudSpring BootMybatis微服务服务监控可视化运营 B2B2C平台: 平台管理端(包含自营) 商家平台端(多商户入驻) PC买家端、手机wap/公众号买家端 微服务(30个通用…

文心一言 VS 讯飞星火 VS chatgpt (156)-- 算法导论12.3 3题

三、用go语言,对于给定的 n 个数的集合,可以通过先构造包含这些数据的一棵二叉搜索树(反复使用TREE-INSERT 逐个插入这些数),然后按中序遍历输出这些数的方法,来对它们排序。这个排序算法的最坏情况运行时间和最好情况运行时间各是…

带你手把手解读firejail沙盒源码(0.9.72版本)(三) etc-cleanup

文章目录 main.c代码解释 Makefile代码解释 ├── etc-cleanup │ ├── Makefile │ └── main.c这个文件夹在 linux 环境下使用 git clone 到本地才有,直接下载源代码没有 git clone https://github.com/netblue30/firejail.gitetc-clean 文件夹通常不是一…

Spring Boot+FreeMarker=打造高效Web应用

🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Spring BootFreeMarker的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一. FreeMarker是什么 二…

C#教程(一):面向对象

1、介绍 C#是一种多范式编程语言,但其中一个主要的编程范式是面向对象编程(OOP)。面向对象编程有一些特点,而C#提供了丰富的功能来支持这些特点。 2、面向对象特点 封装(Encapsulation): 封装…

2024年金科《数字媒体技术》专业参考书目及考试大纲

《计算机网络基础》考试大纲 一、参考书目: 《计算机网络技术与应用(第 2 版)》,段标、张玲主编,电子工业出版社. 二、考试形式: 闭卷,考试时间 90 分钟 三、考试内容和要求 (一…

【爬虫课堂】如何高效使用短效代理IP进行网络爬虫

目录 一、前言 二、代理IP的基本知识 三、短效代理IP的优势 四、高效使用短效代理IP的技巧 1. 多源获取代理IP 2. 质量筛选代理IP 3. 使用代理池 4. 定时更换代理IP 5. 失败重试机制 6. 监控和自动化 五、示例代码 六、结语 一、前言 网络爬虫是一种自动化程序&am…

RocketMQ源码 Broker-BrokerStatsManager Broker统计管理组件源码分析

前言 BrokerStatsManager 主要负责对broker端的系统指标进行统计,如QUEUE_GET_NUMS队列获取数量、QUEUE_GET_SIZE队列获取大小指标的 分钟、小时、天级别的统计数据。它针对的所有指标都是使用后台定时调度线程,对统计条目中的数据进行后台统计计算&…

Leetcode—108.将有序数组转换为二叉搜索树【简单】

2023每日刷题(五十八) Leetcode—108.将有序数组转换为二叉搜索树 实现代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/ struct TreeNode* dfs(int …

Halcon 模板匹配基于相关性

文章目录 基于相关性使用匹配助手 基于相关性 适用场景 模板匹配:当你需要在图像中找到一个已知的模板时,例如在工业生产线上检测产品的特定标识或零件的特征时,相关性匹配是一种简单而有效的方法。实时应用:相关性匹配通常具有较…

scratch认识图形 2023年12月中国电子学会 图形化编程 scratch编程等级考试二级真题和答案解析

目录 scratch认识图形 一、题目要求 1、准备工作 2、功能实现 二、案例分析