最近研究了一下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-tutorial-1 在链接到另一个容器中运行的数据库的 docker 容器中运行一个简单的 Python Web 服务。 ###演示首先从我们之前在虚拟机上创建的myapp目录开始。 本教程的其余部分将假设您正在使用我们的提供的 ...
一旦Docker Desktop成功启动,您将能够在本地计算机上运行Docker容器。 请注意,安装Docker可能会要求启用Hyper-V和容器功能。这些功能在某些Windows版本中默认关闭。如果安装过程中出现任何问题,您可以参考Docker...
Glue支持针对开发人员端点运行,但是对于快速开发人员而言,有时您只想针对一部分数据在本地运行,而不必为保持开发人员端点运行而付费。胶浆Glue具有将数据加载和保存到s3的特定方法,当在jupyter笔记本中运行时将...
Docker Dropwizard 镜像用于在容器中运行 Dropwizard 应用程序的示例 Docker 镜像。 要求: JDK(本地编译java文件) (用于构建自动化) 在本地运行: gradle run# ./go构建 docker 镜像: gradle dockerBuildImage...
以最小的麻烦在Docker容器中运行AMP的本地开发副本。 先决条件 Linux(尚未在Mac或Windows上测试过-可能行得通吗?) 码头工人 AMP 2.10或2.11源代码的副本 AMP安装中的数据库转储 设置 将此存储库克隆到系统上...
docker-cups-airprint-hplip 运行带有HPLIP驱动程序的CUPS实例的基于Alpine的Docker映像,以使用不具有AirPrint功能的本地USB打印机作为AirPrint打印机目录 关于取自tigerj / cups-airprint ,它是quadportnick / ...
akka-docker-cluster-example, 支持 Docker 支持的akka集群项目示例 akka-docker-cluster-example支持 Docker 支持的akka集群项目示例。...:如何运行在SBT中,运行 docker:publishLocal 来创建本地 D
此脚本使用由用户提供的在不同Amazon AWS EC2实例上运行的Docker映像来自动化运行和测试应用程序的过程 快速开始 从下载文件 更新vagrant /文件夹中Vagrantfile的字段以匹配您自己的AWS凭证 运行脚本: ./docker-ec...
Docker Compose是用于在使用定义的Docker上运行多容器应用程序的工具。 Compose文件用于定义配置应用程序的一个或多个容器的方式。 拥有Compose文件后,您可以使用一个命令创建并启动应用程序: docker-compose up ...
Docker Jockey-快速部署您正在运行的内容。 DockerJockey是一个命令行工具,可让您像往常一样运行docker命令,但它将在您选择的云上远程启动它们。 我之所以这样做,是因为我希望能够Swift掌握自己在本地进行的开发...
Docker-compose安装程序以运行Laravel应用程序可用的容器PHP-FPM 8(本地主机:8100,应用程序) NGINX MySQL 5.7 phpMyAdmin(localhost:8200) Redis的6 MailHog(本地主机:8025)如何使用它?步骤1 克隆此仓库...
Phabricator-Docker 这是...配置要使用单个命令启动Phabricator,您需要配置MySQL / MariaDB和S3存储(本地服务器或AWS)启动示例命令: docker run \ --rm \ -p 80:80 \ -p 2222:2222 \ --env MYSQL_HOST=mysqlhost....
docker-good-defaults, 用于 Docker 示例的示例 node 应用程序 node Docker Hello World,用于在 Docker 中显示使用 node.js的默认值这试图是一个"默认值"示例,用于在 Docker 中使用 node.js 进行本地开发和运行。...
构建完成后,从命令行运行./run.bash脚本以启动为网站提供服务的本地Docker实例。 您将可以在Linux上的或Mac OS X上的 (默认)下访问它。进入容器如果某些问题不适用于您的应用程序,则可能需要连接到计算机上的...
第二步:启动 registrator 服务发现程序你需要在集群的每一台服务器上都运行 registrator,这使得我们可以自动发现和注册分布式服务docker run -d --name=registrator --net=host --volume=/var/run/docker....
使用Docker Compose通过两个单独的容器运行Node服务器和create-react-app应用程序的项目。 发展 docker-compose up 为了进行开发, server/和client/目录具有自己的docker容器,这些容器通过docker-compose.yml文件...
Docker时一个能够把开发的应用程序自动部署到容器的开源引擎。Docker的核心组件:Docker客户端和服务器(也称为Docker引擎),Docker镜像...用户可以在同一台宿主机上运行Docker守护进程和客户端,也可以从本地的Docker
上面的调用创建了一个带有标签的 docker 镜像,brthorserviceWorkerdev然后您可以将其添加docker push到您的注册表或docker run本地。 该图像只是运行static void Main(string[] args)您应用程序的入口点或其他入口...
用户可以在开发环境中使用它来构建和运行容器化的应用程序,进行本地开发和调试。在测试和持续集成环境中,它可以帮助用户轻松地部署和管理多个容器化的服务。在生产环境中,使用它可以实现高可用性、水平扩展和故障...