配置 Visual Studio 容器工具

使用 Visual Studio 设置,可以控制将 Visual Studio 与 Docker 容器结合使用的一些方面,包括在使用 Docker 容器时影响性能和资源使用情况的设置。

容器工具设置

从主菜单中,选择“工具”>“选项”,然后展开“容器工具”>“设置”。 随即出现容器工具设置。

容器工具常规设置

Visual Studio 容器工具选项,其中显示:“根据需要安装 Docker Desktop、“信任 ASP.NET Core SSL 证书”。

容器工具“单个项目”和“Docker Compose”设置

Visual Studio 容器工具选项,其中显示:“在项目关闭时终止容器”、“在项目打开时拉取所需的 Docker 映像”,以及“在项目打开时运行容器”。

Visual Studio 容器工具选项,显示:项目关闭时终止容器、项目打开时拉取所需的 Docker 映像、项目打开时运行容器、在容器中运行服务以启用 Azure 身份验证、在容器中运行服务以启用热重载。

下表可帮助确定如何设置这些选项。

下表描述了“常规”设置

名称 默认设置 适用于 描述
根据需要安装 Docker Desktop 提醒我 单个项目、Docker Compose 选择是否需要在未安装 Docker Desktop 时提醒你。
信任 ASP.NET Core SSL 证书 提醒我 ASP.NET Core 2.x 项目 设置为“提醒我”后,如果 localhost SSL 证书不受信任,则 Visual Studio 将在每次运行 ASP.NET Core 2.x 项目时提示你。

下表描述了“单个项目”和“Docker Compose”设置

名称 默认设置 适用于 描述
在项目打开时拉取所需的 Docker 映像 True 单个项目、Docker Compose 为了在加载项目时提高性能,Visual Studio 将在后台启动 Docker 拉取操作,以便在准备好运行代码时,映像已下载或正在下载。 如果只需加载项目和浏览代码,可以将其设置为“False”,以避免下载不需要的容器映像
在项目打开时拉取更新的 Docker 映像 .NET Core 项目 单个项目、Docker Compose 打开项目后,检查是否有映像更新,如果有便下载更新。
在项目打开时运行容器 True 单个项目、Docker Compose 同样,为了提高性能,Visual Studio 会提前创建一个容器,以便在构建和运行容器时随时可使用该容器。 如果要控制创建容器的时间,请将其设置为“False”
在项目关闭时删除容器 True 单个项目、Docker Compose 如果希望在关闭解决方案或关闭 Visual Studio 后保留解决方案的容器,请将其设置为“False”。
名称 默认设置 适用于 描述
在项目打开时拉取所需的 Docker 映像 True 单个项目、Docker Compose 为了在加载项目时提高性能,Visual Studio 将在后台启动 Docker 拉取操作,以便在准备好运行代码时,映像已下载或正在下载。 如果只需加载项目和浏览代码,可以将其设置为“False”,以避免下载不需要的容器映像
在项目打开时拉取更新的 Docker 映像 .NET Core 项目 单个项目、Docker Compose 打开项目后,检查是否有映像更新,如果有便下载更新。
在项目打开时运行容器 True 单个项目、Docker Compose 同样,为了提高性能,Visual Studio 会提前创建一个容器,以便在构建和运行容器时随时可使用该容器。 如果要控制创建容器的时间,请将其设置为“False”
在项目关闭时删除容器 True 单个项目、Docker Compose 如果希望在关闭解决方案或关闭 Visual Studio 后保留解决方案的容器,请将其设置为“False”。
在容器中运行服务以启用 Azure 身份验证 True 单个项目、Docker Compose Visual Studio 17.6 或更高版本在容器中运行有助于 Azure 身份验证的令牌代理服务,以便应用可以在开发期间使用 Azure 服务。 如果不希望安装并运行此服务,请设置为 False
在容器中运行服务以启用热重载 True 单个项目、Docker Compose 如果不希望安装并运行此服务,请设置为 False。 热重载服务在 Visual Studio 2022 版本 17.7 及更高版本中可用,仅支持在不调试的情况下运行 (Ctrl+F5)。

“容器工具窗口”设置控制应用于“容器”工具窗口的设置,该窗口显示有关 Docker 容器和映像的信息 。 请参阅使用“容器”窗口

Visual Studio 容器工具选项,显示可用于“容器”工具窗口的设置

下表对“容器”窗口设置进行了说明:

名称 默认设置 说明
确认后再删除容器 始终 控制在删除未使用的容器时是否提示你。
确认后再删除映像 始终 控制在删除未使用的映像时是否提示你。
请确认之后再删除容器 始终 控制在删除容器时是否提示你。
请确认之后再删除映像 始终 控制在删除映像时是否提示你。
在运行大量映像之前进行确认 始终 控制在一次从 10 个以上的映像中启动容器之前是否提示你。

警告

如果 localhost SSL 证书不受信任且选中该框以禁止出现提示,则 HTTPS Web 请求可能会在应用或服务中在运行时失败。 在这种情况下,请取消选中“不提示”复选框,运行项目并在提示时指示信任。

配置 Azure 身份验证

如果你的应用使用 Azure 服务,则在容器中运行时,它需要适当的身份验证凭据,以便向 Azure 服务进行身份验证。 在开发过程中,你通常可以使用自己的 Azure 凭据而不是应用在生产环境中使用的凭据,但容器环境需要这些凭据才能对正在运行的容器化应用有用。

从 Visual Studio 2022 版本 17.6 开始,在单容器和 Docker Compose 项目中,你的容器中会部署并运行令牌代理服务,以帮助你的应用和服务在 Azure 中进行身份验证。 此功能需要 Azure 标识 1.9.0 或更高版本。 启用此服务后,你可以自动使用大多数 Azure 服务,而无需在容器中进行任何其他配置或设置。 具体而言,你的代码可以使用 DefaultAzureCredentialVisualStudioCredential 对 Azure 服务进行身份验证,其方式与在容器外部进行身份验证相同。 请参阅 Azure 标识 1.9.0 自述文件

若要禁用此功能,请将本文前面所述的“工具”>“选项中的设置“在容器中运行服务以启用 Azure 身份验证”设为 False

注意

如果你使用令牌代理并启用了某些容器工具诊断日志,则存在潜在的安全问题。 启用日志记录后,身份验证凭据可以记录为纯文本。 这些日志由某些环境变量启用。 对于单个容器项目,环境变量为 MS_VS_CONTAINERS_TOOLS_LOGGING_ENABLED,随后会记录到 %tmp%\Microsoft.VisualStudio.Containers.Tools 中。 对于 Docker Compose 项目,环境变量为 MS_VS_DOCKER_TOOLS_LOGGING_ENABLED,随后会记录在 %tmp%\Microsoft.VisualStudio.DockerCompose.Tools 中。

通过此概述详细了解如何使用 Visual Studio 中的容器。