Docker Desktop是一个用于构建和管理容器化应用程序的工具,它允许开发人员在本地计算机上运行和测试容器,而无需设置和管理自己的容器运行环境。它是一个易于安装的应用程序,使您能够在几分钟内开始编码和容器化。

Docker Desktop 包含了 Docker Engine, Docker CLI client, Docker Compose, Docker Machine 和 Kitematic。包含了从您的机器构建、运行和共享容器化应用的所有功能5。它提供了一个直接从您的机器管理容器、应用程序和镜像的图形用户界面 (GUI)。此外,Docker Desktop 还提供了 Docker Extension 的 Marketplace 的搜索功能,您可以直接在 Docker Dashboard 上无缝搜索 Docker Extensions。总的来说,Docker Desktop 是一个功能强大的工具,它可以帮助开发者快速构建、运行和管理容器化的应用和服务,大大简化了开发流程。

本站为用户提供Docker电脑版下载,这里电脑版默认是指Docker Desktop for Windows,支持在Windows所有系统中运行,新版本在速度,安全以及功能上都有了很大的改进,有需求的用户请下载使用。

什么是docker

docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现,这里程序运行的依赖也就是容器就好比集装箱,容器所处的操作系统环境就好比货船或港口,程序的表现只和集装箱有关系(容器),和集装箱放在哪个货船或者哪个港口(操作系统)没有关系。

因此我们可以看到docker可以屏蔽环境差异,也就是说,只要你的程序打包到了docker中,那么无论运行在什么环境下程序的行为都是一致的,程序员再也无法施展表演才华了,不会再有“在我的环境上可以运行”,真正实现“build once, run everywhere”。

此外docker的另一个好处就是快速部署,这是当前互联网公司最常见的一个应用场景,一个原因在于容器启动速度非常快,另一个原因在于只要确保一个容器中的程序正确运行,那么你就能确信无论在生产环境部署多少都能正确运行。

docker的工作原理

docker使用的是常见的CS架构,也就是client-server模式,docker client负责处理用户输入的各种命令,比如docker build、docker run,真正工作的其实是server,也就是docker demon,值得注意的是,docker client和docker demon可以运行在同一台机器上。

下面,我们用几个命令来讲解一下docker的工作流程:

1、docker build

当我们写完dockerfile交给docker“编译”时使用这个命令,那么client在接收到请求后转发给docker daemon,接着docker daemon根据dockerfile创建出“可执行程序”image。

2、docker run

有了“可执行程序”image后就可以运行程序了,接下来使用命令docker run,docker daemon接收到该命令后找到具体的image,然后加载到内存开始执行,image执行起来就是所谓的container。

3、docker pull

docker中image的概念就类似于“可执行程序”,我们可以从哪里下载到别人写好的应用程序呢?很简单,那就是APP Store,即应用商店。与之类似,既然image也是一种“可执行程序”,那么有没有"Docker Image Store"呢?答案是肯定的,这就是Docker Hub,docker官方的“应用商店”,你可以在这里下载到别人编写好的image,这样你就不用自己编写dockerfile了。

docker registry 可以用来存放各种image,公共的可以供任何人下载image的仓库就是docker Hub。那么该怎么从Docker Hub中下载image呢,就是这里的docker pull命令了。

因此,这个命令的实现也很简单,那就是用户通过docker client发送命令,docker daemon接收到命令后向docker registry发送image下载请求,下载后存放在本地,这样我们就可以使用image了。

Docker Desktop 在与其他类似工具(如Kubernetes)的比较中,有哪些优势和不足?

Docker Desktop 和 Kubernetes 都是用于容器化应用程序的工具,但它们有一些显著的区别。

Docker Desktop 的优点主要包括:

1、轻量级:Docker 提供了轻量级的虚拟化,使得应用程序和它们的依赖能够以容器的形式打包并在不同环境中运行。

2、独立性:Docker 容器本身具有独立性,可以在没有任何特殊环境设置的情况下运行,并且每个 Docker 容器都可以拥有自己的网络端口和 IP 地址。

然而,Docker Desktop 也存在一些限制:

1、单机限制:尽管 Docker 为容器化的应用程序提供了开放标准,但随着容器越来越多出现了一系列新问题:单机不足以支持更多的容器; 分布式环境下容器如何管理和部署2。 相比之下,Kubernetes 是一个用于运行和管理来自多个容器运行时的容器的平台。Kubernetes 支持大量容器运行时,包括 Docker。

Kubernetes 的优点主要包括:

1、强大的管理和部署能力:Kubernetes 可以有效地管理和部署容器化的应用程序,无论是在单机还是分布式环境中。

2、强大的扩展能力:Kubernetes 可以轻松地扩展到大规模的应用程序,支持多个容器运行时。

然而,Kubernetes 的使用也有一些挑战,例如学习曲线较陡峭,部署和维护可能需要一定的技术知识。

总的来说,Docker Desktop 和 Kubernetes 在容器化应用程序管理和部署方面各有优势和不足,选择哪种工具取决于您的具体需求和技术背景。

Docker Desktop for Windows功能

1、速度:

开发人员希望最大限度地利用时间为应用程序编写代码,并最大限度地减少设置和开销,以便可以尽早且频繁地交付。

Docker Init:自动为 Python、Node 和 Go 应用程序生成 Dockerfile 和docker-compose.yml文件。

VirtioFS 支持:数据库导入时间减少 98%。

Docker Compose file watch:自动检测本地主机代码更改并将其与容器同步。

vpnkit => gVisor:容器到主机的网络性能提高 5 倍。

2、安全性:

具体来说,非侵入性、信息丰富且可操作的安全性。开发人员希望在“内循环”中编码时立即捕获并修复漏洞,而不是在 CI 中 30 分钟后或在生产中 7 天后。

Docker Scout:当开发人员在“内循环”中编码时,自动检测漏洞并建议修复。

证明:Docker Build自动生成 SBOM 和 SLSA Provenance 并将它们附加到映像。

3、选择:

开发人员希望能够自由地探索新技术并为正确的工作选择正确的工具,而不是被限制在“除了厨房水槽之外的所有东西”的整体工具中使用最低公分母技术。

Docker 扩展:推出仅一年多,从那时起,合作伙伴和社区成员已经创建并向Docker Hub发布了700 多个 Docker 扩展,用于涵盖 Kubernetes 应用程序开发、安全性、可观察性等广泛的开发人员工具。

Docker 赞助的开源项目:在 Docker Hub 上 100% 免费提供,该赞助计划支持 600 多个开源社区项目。

多种架构:单个docker build命令可以生成在多种架构上运行的映像,包括 x86、ARM、RISC-V,甚至 IBM 大型机。

更新日志

v4.91.0版本

修复了卷和容器文件系统浏览器中“上次修改时间”列在修改时间不可用时显示不准确的时间戳(例如“57 年前”)而不是空白的问题。

修复了 Docker Desktop 在添加~/.docker/bin到 PATH 时向 csh/tcsh 配置文件写入无效的导出 PATH 语法的问题。

修复了 Docker Scout CLI 提示信息在升级后仍然存在的问题。

修复了一个错误,该错误会导致 Docker 网络数据库损坏(通常是由于突然关机造成的),从而阻止 Docker Engine 启动,并导致恢复出厂设置成为唯一的恢复选项。

修复了当插件二进制文件被其他进程锁定时,CLI 插件更新反复失败的问题。现在,下次启动时会自动重试更新。

修复了某些图形驱动程序存在问题的机器上 Docker Desktop 界面陷入无限重启循环的问题,并添加了一条消息,解释当由于硬件兼容性问题而无法显示界面时会发生什么情况。

新版用户界面改进了启动体验,在应用程序加载时,会立即显示主题化的框架布局(页眉、侧边栏、页脚),而不是显示空白窗口。

修复了当虚拟机意外停止时,Docker Desktop 有时需要额外五分钟才能报告引擎已停止的问题。

修复 Kubernetes (kubeadm) 缺少 CNI 回环接口名称的问题。

修复了 MCP 个人资料导览卡住或工具提示渲染超出屏幕的问题。

修复了将磁盘映像位置更改为不同卷时,如果复制开始前操作中断,则可能会删除现有磁盘映像的错误。

修复了 Docker Compose 在每次 Resource Saver 唤醒时重新构建本地构建镜像的问题。修复了docker/desktop-feedback#507。

修复了 Docker Hub API 响应包含意外或更改的字段时,Hub 镜像搜索和标签列表会失效的回归问题。

修复了当空闲超时设置为 0 时虚拟机可能意外关闭的问题。

修复了在 WSL 引擎仍然启用的情况下切换到 Windows 容器时,可能会错误地提示在未启动所需特权服务的情况下继续操作的错误。

修复了卸载 Docker Desktop 后会留下过时的注册表项的问题FeaturesRequireReboot=1,这可能会导致后续安装时出现意外的重启提示。

修复了当 WSL 无法访问磁盘映像位置时,Docker Desktop 无限期地停留在“正在启动...”状态的问题,并报告了访问失败情况,提供了可操作的指导,而不是通用的 WSL 错误。

修复了即使 Docker Desktop 服务安装或启动失败,Windows MSI 安装程序仍报告安装成功的问题。

修复了切换到 Windows 容器后立即运行命令时出现的虚假故障。