关于 Docker Offload
Docker Offload 是一项完全托管的服务,用于使用您已熟悉的 Docker 工具(包括 Docker Desktop、Docker CLI 和 Docker Compose)在云端构建和运行容器。它将您的本地开发工作流扩展到可扩展的、由云驱动的环境中,因此您可以卸载计算密集型任务、加速构建,并在整个软件生命周期中安全地管理容器工作负载。
Docker Offload 还支持 GPU 加速实例,允许您容器化并运行计算密集型工作负载,例如 Docker Model Runner 以及其他受益于 GPU 的机器学习或数据处理任务。
关键特性
Docker Offload 包含以下功能以支持现代容器工作流
- 基于云的构建:在远程、完全托管的 BuildKit 实例上执行构建
- GPU 加速:使用由 NVIDIA L4 GPU 支持的环境进行机器学习、媒体处理和其他计算密集型工作负载。
- 临时的云运行器:为每个容器会话自动配置和拆除云环境。
- 共享构建缓存:通过智能的共享缓存层,加快跨机器和团队成员的构建速度。
- 混合工作流:使用 Docker Desktop 或 CLI 在本地和远程执行之间无缝切换。
- 安全通信:在 Docker Desktop 和云环境之间使用加密隧道,并支持安全密钥和镜像拉取。
- 端口转发和绑定挂载:即使在云中运行容器,也能保持本地开发体验。
- VDI 友好:在虚拟桌面环境或不支持嵌套虚拟化的系统中使用 Docker Offload。
为何使用 Docker Offload?
Docker Offload 旨在支持在本地和云环境之间工作的现代开发团队。它能帮助您:
- 将繁重的构建和运行任务卸载到快速、可扩展的基础设施上
- 加速开发和测试中的反馈循环
- 运行需要比本地设置提供更多资源的容器
- 通过即时访问 GPU 驱动的环境来构建和运行 AI 应用
- 使用 Docker Compose 管理需要云资源的复杂多服务应用
- 无需管理自定义基础设施即可维护一致的环境
- 在受限或低功耗环境(如 VDI)中高效开发
Docker Offload 是高效率开发工作流的理想选择,这些工作流既需要云的灵活性,又不想牺牲本地工具的简便性。
Docker Offload 的工作原理
Docker Offload 通过将 Docker Desktop 连接到安全的专用云资源,替代了在本地构建或运行容器的需求。
使用 Docker Offload 进行构建
当您使用 Docker Offload 进行构建时,`docker buildx build` 命令会将构建请求发送到云端的远程 BuildKit 实例,而不是在本地执行。您的工作流程保持不变,只是执行环境发生了变化。
构建在由 Docker 配置和管理的基础设施上运行
- 每个云构建器都是一个独立的 Amazon EC2 实例,拥有自己的 EBS 卷
- 远程构建器使用共享缓存来加速跨机器和团队成员的构建
- 构建结果在传输过程中被加密,并发送到您指定的目标(如注册表或本地镜像存储)
Docker Offload 自动管理构建器的生命周期。无需配置或维护基础设施。
注意Docker Offload 构建器目前托管在美国东部地区。其他地区的用户可能会遇到延迟增加的情况。
使用 Docker Offload 运行容器
当您使用 Docker Offload 运行容器时,Docker Desktop 会创建一个到云端运行的 Docker 守护进程的安全 SSH 隧道。您的容器完全在那个远程环境中启动和管理。
以下是工作流程:
- Docker Desktop 连接到云并触发容器创建。
- Docker Offload 拉取所需的镜像并在云端启动容器。
- 在容器运行时,连接保持打开状态。
- 当容器停止运行时,环境会自动关闭并清理。
这种设置避免了在本地运行容器的开销,即使在低功耗机器上也能实现快速、可靠的容器运行,包括那些不支持嵌套虚拟化的机器。这使得 Docker Offload 非常适合使用虚拟桌面、云托管开发机或旧硬件等环境的开发人员。
Docker Offload 还支持 GPU 加速的工作负载。需要 GPU 访问的容器可以在配置了 NVIDIA L4 GPU 的云实例上运行,以实现高效的 AI 推理、媒体处理和通用 GPU 加速。这使得诸如模型评估、图像处理和硬件加速的 CI 测试等计算密集型工作流能够在云中无缝运行。
尽管是远程运行,但绑定挂载和端口转发等功能仍然无缝工作,在 Docker Desktop 和 CLI 内部提供了类似本地的体验。
Docker Offload 为每个会话配置一个临时的云环境。当您与 Docker Desktop 交互或积极使用容器时,该环境保持活动状态。如果大约 5 分钟内未检测到任何活动,会话将自动关闭。这包括该环境中的任何容器、镜像或卷,它们在会话结束时都将被删除。
接下来做什么
通过遵循 Docker Offload 快速入门,亲身体验 Docker Offload。