最近研究了一下docker,其中有很多疑问。我一直在想,为什么会诞生这种这么难用的东西,并且大家还都喜欢?这是其中我最大的一个问题,我阐述了一下,有不对的,欢迎大家拍砖。
名词简述:
本机运行:即相对于在docker中运行程序,直接在物理机上上运行程序。
docker与虚拟机的区别,有很多,最大的区别就是启动速度比虚拟机快了至少10个数量级。
那么docker与直接在本机运行程序有什么区别呢?
直接在本机运行程序,速度不是比从docker中启动速度更快?
我们先从docker的口号中找答案。build ship and run any app,any where.次口号:an open platform for distributed applications for developers and sysadmin。
这个口号大概说了以下几点。
1、在docker中可以运行任意的app。说anywhere还是有点夸张的。没有docker环境,你还能运行么?总之,就是说,如果你的程序能在docker中运行,就代码可以在任意环境运行。但目前docker只在unix系统的系统中运行,在windows中还是无法运行的。所以,这句说的其实名不副实。
2、docker为开发人员和运维人员提供了一个开发平台。
这句话,毋庸置疑。开发人员和运维人员都用docker,自然就形成了一个平台。但是目前,都使用虚拟机不也是一个平台么?所以这一点也不足以构成一个独特点。至于分布式应用,我想不用docker就不能用分布式了么?
所以,从docker这些直接宣传语来说,不足以让大家趋之若鹜。
那么,人们为什么这么热衷于docker呢?不排除某些大厂商的一些炒作。其实,计算机届和娱乐圈有一些相似之处,就是炒作。每隔几年,总要出一些新技术。人们总是喜新厌旧,就像手机一样,智能机比功能机多了写照相,打游戏,听音乐,上网的功能,价格就能翻好几倍。社会称之为创新,革命。
回到开头,其实这个问题就是相当于问“用智能手机打电话和用功能机打电话有什么区别”。我想你已经知道答案了吧。
那么docker到底附加了哪些功能呢?
我个人觉得,最大的附加功能就是性能。and so called build ship and run any app,any where。
docker为什么会是将来的趋势?
因为传统的vm太慢,技术太老,性能太低(当然这些都是相对docker的,想想docker没出生之前,大家用VM照样不是用的很溜)。社会要进步就必须有一种新的技术取代它。docker就是这样一种技术,虚拟机的最主要的隔离性等功能,在docker种都有替代方案。
docker比直接在本机性能更高么?
不会。既然是运行在容器中的,肯定没有直接运行性能高。
相关推荐
如何在本地搭建docker ChatGPT环境.zip
Docker 是一种轻量级的操作系统虚拟化工具,能够将应用程序及其依赖项打包成一个容器,使得应用程序在不同的环境中运行时都能保持一致的行为。使用 Docker 打包 Python 运行环境可以大大提高工作效率。 Docker 架构...
程序代码如下: #include using namespace std; int main () { cout << hello-world << endl; cout << my first docker << endl; return 0; } 例如我是在我的home路径下建立一个...
Docker在IT行业中是一款非常重要的容器化平台,它允许开发者将应用程序及其依赖打包到一个可移植的容器中,便于在各种环境中快速部署和运行。在Windows操作系统上安装Docker,可以借助Docker Desktop或者Docker ...
3. **程序的高可移植性**:由于 Docker 容器化了应用程序及其依赖,程序可以在任何支持 Docker 的平台上运行,无论是在公有云、私有云还是本地服务器,保持一致的行为。这极大地提高了软件的可移植性和部署的灵活性...
启动Docker应用程序后,可以在菜单栏看到Docker图标,表明Docker已经安装成功并准备好使用。 ### Docker在其他Linux发行版上的安装 对于不在上述列表中的Linux发行版,Docker官方提供了详细的安装指南,这些指南...
Docker的核心理念是“构建、分享和运行”的应用程序。它基于Go语言并实现了轻量级的虚拟化,通过容器技术实现了应用的隔离。Docker容器与传统的虚拟机不同,它们共享主机的操作系统,因此启动速度快,资源利用率高。...
Docker Desktop 是一款强大的开发工具,使开发者能够在 Windows 环境中高效构建、共享和运行容器化应用程序。它提供了一种无缝的开发体验,允许用户通过简单的图形界面和命令行工具来管理 Docker 容器和镜像。 ...
1. **Docker Engine**: Docker Engine是Docker的核心,它允许开发者打包应用程序及其依赖项到一个可移植的容器中,然后可以在任何运行Docker的平台上运行。Docker Toolbox中的Docker Engine是适用于旧版Windows(不...
在IT行业中,Docker是容器化技术的领导者,它提供了一种轻量级的方法来运行应用程序,隔离软件的运行环境。而Docker Compose是Docker的一个重要工具,用于定义和运行多容器Docker应用程序。在没有网络连接或网络受限...
1. Docker Client:用户与Docker交互的接口。 2. Docker Daemon:负责管理容器的生命周期。 3. Docker Registry:镜像仓库,用于存储和管理镜像。 Docker的命令 1. `docker images`:查看本地所有镜像。 2. `...
Docker Desktop Installer.exe文件是Docker Desktop for Windows的安装程序,它包含了运行Docker Desktop所需的所有组件,包括Docker Engine、Docker Compose、Kubernetes等。Docker Desktop为开发者提供了在Windows...
它允许开发者将应用程序及其依赖项打包在一个容器中,从而确保应用无论在何处运行都能获得一致的环境。本文将详细介绍如何离线安装 Docker 19.03-ce,并通过具体的命令行操作展示整个过程。 #### 二、准备工作 在...
总的来说,Docker 提供了一种强大的方式来构建、分发和运行应用程序。离线安装 Docker 20.10 和其依赖包对于在受限网络环境下的系统管理和运维工作至关重要。确保正确处理所有依赖关系和配置,可以确保 Docker 在...
5. **Docker运行环境**: boot2docker提供了一个精简且优化的环境,使得Docker可以在非Linux系统上运行,降低了使用Docker的门槛。它自动处理了网络设置、磁盘挂载等复杂问题,让用户可以专注于Docker容器的管理和...
在Red Hat Enterprise Linux (RHEL) 7.2版本中,Docker CE(Community Edition)是流行的容器化技术,用于创建、部署和运行应用程序。离线安装Docker CE在没有互联网连接或者网络环境受限的环境中尤其重要。以下是一...
docker-tutorial-1 在链接到另一个容器中运行的数据库的 docker 容器中运行一个简单的 Python Web 服务。 ###演示首先从我们之前在虚拟机上创建的myapp目录开始。 本教程的其余部分将假设您正在使用我们的提供的 ...
使用Docker运行MySQL容器,映射端口,挂载卷以持久化数据,并设置环境变量以指定root用户的密码。放置配置文件并根据需要进行调整,例如更改root用户的认证方式。重启MySQL容器以应用配置。 在安装Apache ...