首页 > 其他分享 >快速认识什么是:Docker

快速认识什么是:Docker

时间:2023-12-07 21:46:14浏览次数:36  
标签:容器 认识 虚拟机 应用程序 镜像 Docker 快速 运行

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

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

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

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

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

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

三个基本元素。

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

  • Dockerfile
  • 镜像
  • 容器

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

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

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

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

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

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

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

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

最后,顺手翻了一份 Docker入门课程,如果想再进一步学习一下的话,可以关注我的公众号:程序猿DD,发送暗号:docker,获取下载地址。

如果您想开拓眼界,了解和发现更多计算机领域的概念和知识,欢迎关注我在持续更新的开发者科普专栏,助你探索更多计算机领域的热门知识!

欢迎关注我的公众号:程序猿DD。第一时间了解前沿行业消息、分享深度技术干货、获取优质学习资源

标签:容器,认识,虚拟机,应用程序,镜像,Docker,快速,运行
From: https://www.cnblogs.com/didispace/p/17884039.html

相关文章

  • 算法【快速排序】
    算法【快速排序】快速排序。选择一个作为比较的元素,这里我们选择首元素,这个元素我叫他‘比较元素’;前后两个指针(其实是索引变量)同时往后和往前进行遍历,开头的指针遇到比‘比较元素’大的元素停下来(空循环体的循环即可实现),末尾的指针往前遍历,遇到比‘比较元素’小的元素停下来;两个......
  • 4 种方法,帮你快速新建 Java 项目!
    大家好,我是鱼皮。今天给大家分享常用的快速初始化Java项目的几种方法。比较全面,有一些方法你可能并不知道,但如果都掌握的话,基本上够用一辈子了哈哈。如何快速初始化Java项目?1、使用开发工具Java开发者最常用的开发工具当属JetBrainsIDEA了!IDEA不仅功能完善、插件丰富,而且......
  • Java Mockito 快速入门指南 Mock是指使用Mockito创建的模拟对象,它模拟真实对象的行为,
    JavaMockito快速入门指南Mock是指使用Mockito创建的模拟对象,它模拟真实对象的行为,用于替代真实对象的依赖项,以便进行独立的单元测试在软件开发中,单元测试对于确保代码的正确性和可靠性至关重要。Mockito是一个强大的Java测试框架,它提供了丰富的功能和方法,使得编写模拟测试变得......
  • KubeSphere Marketpalce 上新!Databend Playground 助力快速启动数据分析环境
    12月5日,DatabendLabs旗下DatabendPlayground(社区尝鲜版)成功上架青云科技旗下KubeSphereMarketplace云原生应用扩展市场,为用户提供一个快速学习和验证Databend解决方案的实验环境。关于DatabendPlaygroundDatabend是使用Rust研发、完全⾯向云架构、基于对象存......
  • Docker安装Zabbix-server出现[its "users" table is empty]问题的解决
    简述安装过程dockerrun--namezabbix-db--networkzabbixnet-eMYSQL_ROOT_PASSWORD="password"-eMYSQL_USER="zabbix"-eMYSQL_PASSWORD="zabbix"-eMYSQL_DATABASE="zabbix"-dmysqldockerrun--namezabbix-server--net......
  • [Re221127周任务]认识寄存器
    1.分析逻辑 我们一个一个点进去看 我们这里是加密过程并且加密后直接与输入对比的,所以我们可以直接动调2.动调 下在这里就好了 点进去eax就有flag了 注意这个flag是不包括上面那个1的 ......
  • 如何导出docker镜像
    参考资料:[实现本地镜像的导入、导出]我们知道docker高手制作docker镜像都是通过Dockfile去“编译”一个镜像的,但是由于种花家的网络状况,使用Dockerfile很难一步把docker里的环境给一步配好,所以更多的时候我会选择以一个base镜像为基础,装好环境后导出。就我的理解这......
  • docker基本命令
    1.基本命令dockerps查看所有运行中的DOCKERdockerps-a查询所有运行+非运行的dockerdockerlogs<容器id或容器名> 查看容器日志dockerlogs-f <容器id或容器名> 实时查看容器日志docker run--name《容器别名》--network《自定义网段》-d 《容器imgs》:<版本>......
  • 使用funcgraph-retval和bpftrace/kprobe快速定位并解决cpu控制器无法使能的问题
    版本Linux6.5背景在学习cgroupv2的时候,想给子cgroup开启cpu控制器结果失败了:#查看可以开启哪些控制器root@ubuntu-vm:/sys/fs/cgroup#catcgroup.controllerscpusetcpuiomemoryhugetlbpidsrdmamisc#上面看到,是支持cpu控制器的,通过下面命令查看目前子cgroup开启......
  • 解决Docker启动Starting the Docker Engine的问题:
    问题如上图,试图启动Docker时一直转圈圈,已经确认了打开Hyper-V功能依然无法解决.通过在网上查资料,了解到因为在电脑上安装过了雷电模拟器等APK模拟器后,此时再去使用Docker就会出现奇奇怪怪的问题.因为系统只能虚拟化一个,无法都兼顾.解决方法1:重新启动Dokcer尝试重新......