询问 Gordon

可用性: 测试版
要求: Docker Desktop 4.38.0 或更高版本

询问 Gordon 是您的个人 AI 助手,嵌入在 Docker Desktop 和 Docker CLI 中。它旨在简化您的工作流程,帮助您充分利用 Docker 生态系统。

关键特性

询问 Gordon 在 Docker 工具中提供 AI 驱动的帮助。它可以

  • 改进 Dockerfile
  • 运行和排查容器
  • 与您的镜像和代码交互
  • 查找漏洞或配置问题
  • 将 Dockerfile 迁移以使用 Docker 强化镜像

它了解您的本地环境,包括源代码、Dockerfile 和镜像,以提供个性化且可操作的指导。

询问 Gordon 记住对话,让您更容易切换话题。

询问 Gordon 默认不启用,并且未达到生产就绪状态。您也可能会遇到“Docker AI”这个术语,它是对这项技术的更广泛的引用。

注意

询问 Gordon 由大型语言模型 (LLM) 提供支持。与所有基于 LLM 的工具一样,其响应有时可能不准确。请务必验证所提供的信息。

Gordon 访问哪些数据?

当您使用询问 Gordon 时,它访问的数据取决于您的查询

  • 本地文件:如果您使用 docker ai 命令,询问 Gordon 可以访问当前工作目录中执行该命令的文件和目录。在 Docker Desktop 中,如果您在**询问 Gordon** 视图中询问特定文件或目录,系统会提示您选择相关上下文。
  • 本地镜像:Gordon 与 Docker Desktop 集成,可以查看本地镜像存储中的所有镜像。这包括您构建或从注册表拉取的镜像。

为了提供准确的响应,询问 Gordon 可能会将相关文件、目录或镜像元数据与您的查询一起发送到 Gordon 后端。此数据传输通过网络进行,但绝不会永久存储或与第三方共享。它仅用于处理您的请求并形成响应。有关 Docker AI 隐私条款和条件的详细信息,请查看 Gordon 补充条款

所有传输的数据均经过传输加密。

您的数据如何被收集和使用

Docker 会从您与询问 Gordon 的交互中收集匿名数据,以改进服务。这包括

  • 您的查询:您向 Gordon 提出的问题。
  • 响应:Gordon 提供的答案。
  • 反馈:点赞和点踩评分。

为确保隐私和安全

  • 数据已匿名化,无法追溯到您或您的帐户。
  • Docker 不会使用此数据来训练 AI 模型或与第三方共享。

通过使用询问 Gordon,您可以帮助提高 Docker AI 对所有人的可靠性和准确性。

如果您对数据收集或使用有疑问,可以随时禁用该功能。

启用询问 Gordon

  1. 登录您的 Docker 帐户。

  2. 转到设置中的**Beta 功能**选项卡。

  3. 勾选**启用 Docker AI** 复选框。

    出现 Docker AI 服务条款协议。您必须同意条款才能启用该功能。查看条款并选择**接受并启用**以继续。

  4. 选择**应用**。

重要提示

对于 Docker Desktop 4.41 及更早版本,此设置位于**开发中的功能**页面的**实验性功能**选项卡下。

使用询问 Gordon

您可以访问 Gordon

  • 在 Docker Desktop 中,位于**询问 Gordon** 视图中。
  • 在 Docker CLI 中,使用 docker ai 命令。

启用 Docker AI 功能后,您还会在 Docker Desktop 的其他地方看到**询问 Gordon**。每当您看到带有**闪光** (✨) 图标的按钮时,您都可以使用它从询问 Gordon 获取上下文支持。

示例工作流程

询问 Gordon 是一个通用的 AI 助手,用于 Docker 任务和工作流程。以下是一些您可以尝试的事项

有关更多示例,请尝试直接询问 Gordon。例如

$ docker ai "What can you do?"

排查崩溃的容器

如果启动容器时配置或命令无效,请使用询问 Gordon 解决错误。例如,尝试在没有数据库密码的情况下启动 Postgres 容器

$ docker run postgres
Error: Database is uninitialized and superuser password is not specified.
       You must specify POSTGRES_PASSWORD to a non-empty value for the
       superuser. For example, "-e POSTGRES_PASSWORD=password" on "docker run".

       You may also use "POSTGRES_HOST_AUTH_METHOD=trust" to allow all
       connections without a password. This is *not* recommended.

       See PostgreSQL documentation about "trust":
       https://postgresql.ac.cn/docs/current/auth-trust.html

在 Docker Desktop 的**容器**视图中,选择容器名称旁边的 ✨ 图标,或检查容器并打开**询问 Gordon** 选项卡。

获取运行容器的帮助

如果您想运行特定镜像但不确定如何操作,Gordon 可以帮助您进行设置

  1. 从 Docker Hub 拉取镜像(例如 postgres)。
  2. 打开 Docker Desktop 中的**镜像**视图并选择镜像。
  3. 选择**运行**按钮。

在**运行新容器**对话框中,您会看到一条关于**询问 Gordon** 的消息。

Screenshot showing Ask Gordon hint in Docker Desktop.

提示中的链接文本是开始与询问 Gordon 对话的建议提示。

改进 Dockerfile

Gordon 可以分析您的 Dockerfile 并提出改进建议。要让 Gordon 使用 docker ai 命令评估您的 Dockerfile

  1. 转到您的项目目录

    $ cd <path-to-your-project>
    
  2. 使用 docker ai 命令对您的 Dockerfile 进行评级

    $ docker ai rate my Dockerfile
    

Gordon 将分析您的 Dockerfile 并识别多个方面的改进机会

  • 构建缓存优化
  • 安全性
  • 镜像大小效率
  • 最佳实践合规性
  • 可维护性
  • 可重现性
  • 可移植性
  • 资源效率

将 Dockerfile 迁移到 DHI

将您的 Dockerfile 迁移以使用 Docker 强化镜像 有助于您构建更安全、更精简、更适合生产的容器。DHI 可减少漏洞,强制执行最佳实践并简化合规性,使其成为安全软件供应链的坚实基础。

要请求 Gordon 帮助进行迁移

  1. 确保 Gordon 已启用

  2. 在 Gordon 的工具箱中,确保 Gordon 的 开发人员 MCP 工具包已启用

  3. 在终端中,导航到包含您的 Dockerfile 的目录。

  4. 开始与 Gordon 对话

    docker ai
  5. 类型

    "Migrate my dockerfile to DHI"
    
  6. 跟随 Gordon 的对话。Gordon 将编辑您的 Dockerfile,因此当它请求访问文件系统等时,键入 yes 以允许 Gordon 继续。

    注意

    要了解有关 Gordon 数据保留和它可以访问的数据的更多信息,请参阅 Gordon

迁移完成后,您会看到一条成功消息

The migration to Docker Hardened Images (DHI) is complete. The updated Dockerfile
successfully builds the image, and no vulnerabilities were detected in the final image.
The functionality and optimizations of the original Dockerfile have been preserved.
重要提示

与任何 AI 工具一样,您必须验证 Gordon 的编辑并测试您的镜像。

禁用询问 Gordon

针对个人用户

如果您已启用询问 Gordon 并希望再次禁用它

  1. 打开 Docker Desktop 中的**设置**视图。
  2. 转到**Beta 功能**。
  3. 清除**启用 Docker AI** 复选框。
  4. 选择**应用**。

针对组织

要为整个 Docker 组织禁用询问 Gordon,请使用 设置管理 并将此属性添加到您的 admin-settings.json 文件中

{
  "enableDockerAI": {
    "value": false,
    "locked": true
  }
}

或者通过将 allowBetaFeatures 设置为 false 来禁用所有 Beta 功能

{
  "allowBetaFeatures": {
    "value": false,
    "locked": true
  }
}

反馈

我们重视您对询问 Gordon 的意见,并鼓励您分享您的经验。您的反馈有助于我们改进和完善询问 Gordon,造福所有用户。如果您遇到问题、有建议或只是想分享您喜欢的内容,请通过以下方式联系我们

  • 点赞和点踩按钮

    使用响应中的点赞或点踩按钮对询问 Gordon 的响应进行评分。

  • 反馈调查

    您可以通过 Docker Desktop 中**询问 Gordon** 视图中的*提供反馈*链接,或通过运行 docker ai feedback 命令从 CLI 访问询问 Gordon 调查。

© . This site is unofficial and not affiliated with Kubernetes or Docker Inc.