可以使用 容器工具 设置控制 Visual Studio 如何处理 Docker 容器的一些方面。 本文介绍如何配置 容器工具 设置,这些设置会影响使用 Docker 容器时的 Visual Studio 性能和资源使用情况。
容器工具设置
若要访问设置,请从 Visual Studio 主菜单中选择 “工具 > 选项 ”。 在左窗格中,向下滚动并展开 容器工具。
常规设置
下表介绍了 “常规 ”设置:
设置 | 默认值 | DESCRIPTION |
---|---|---|
根据需要安装 Docker Desktop | 提示我 | 选择是否希望在未安装 Docker Desktop 时收到提示。 |
根据需要启动 Docker Desktop | 始终 | 如果未启动 Docker Desktop,请选择是自动启动它还是是否提示你。 |
信任 ASP.NET 核心 SSL 证书 | 提示我 | 选择在 ASP.NET Core 项目中,是否提示 SSL 证书未被信任。 |
下表介绍了 “常规 ”设置:
设置 | 默认值 | DESCRIPTION |
---|---|---|
根据需要安装 Docker Desktop | 提醒我 | 选择是否在未安装 Docker Desktop 时接收提示。 |
根据需要启动 Docker Desktop | 提示我 | 如果未启动 Docker Desktop,请选择是自动启动它还是是否提示你。 |
信任 ASP.NET 核心 SSL 证书 | 提示我 | 选择是否在 ASP.NET Core 项目中提示 SSL 证书不受信任。 |
重要
如果将 “信任”ASP.NET 核心 SSL 证书 设置为 “永不 ”,并且 localhost
SSL 证书不受信任,则 HTTPS Web 请求可能会在运行时失败。 在这种情况下,请将 信任 ASP.NET 核心 SSL 证书 设置为 提示我,运行项目,并在提示符处指示信任。
单个项目或 Docker Compose 设置
容器工具 单一项目 和 Docker Compose 设置相同。
下表介绍了 单个项目 和 Docker Compose 设置:
设置 | 默认值 | DESCRIPTION |
---|---|---|
在项目打开时拉取所需的 Docker 映像 | 真 实 | 加载容器项目时是否启动后台 Docker 拉取操作。 在您准备好运行代码时,所需的图像已下载或正在下载。 如果只想浏览代码,可以设置为 False 以避免下载不需要的容器映像。 |
在项目打开时拉取最新的 Docker 映像 | .NET Core 项目 | 是决定是否在所有开放项目上运行 Docker pull 以获取所有映像最新更新,还是选择特定项目进行更新。 |
在项目打开时运行容器 | 真 实 | 是否在加载容器项目时创建容器,以便在生成和运行时准备就绪。 如果想要控制容器的创建时间,请设置为 False。 |
在项目关闭时删除容器 | 真 实 | 是关闭解决方案后删除解决方案的容器还是关闭 Visual Studio。 |
设置 | 默认值 | DESCRIPTION |
---|---|---|
在项目打开时拉取所需的 Docker 映像 | 真 实 | 加载容器项目时是否启动后台 Docker 拉取操作。 准备好运行代码时,所需的图片已经下载或正在下载。 如果只想浏览代码,可以设置为 False 以避免下载不需要的容器映像。 |
在项目打开时拉取更新的 Docker 映像 | .NET Core 项目 | 是否在所有开放项目上运行 Docker 拉取以获取最新更新,还是在特定项目上运行该操作以获取最新更新。 |
在项目打开时运行容器 | 真 实 | 是否在加载容器项目时创建容器,以便在生成和运行时准备就绪。 如果想要控制容器的创建时间,请设置为 False。 |
在项目关闭时删除容器 | 真 实 | 是关闭解决方案后删除解决方案的容器还是关闭 Visual Studio。 |
在容器中运行服务以启用 Azure 身份验证 | 真 实 | 对于 Visual Studio 版本 17.6 或更高版本,是否在容器中安装和运行令牌代理服务以启用 Azure 身份验证。 此服务允许应用在开发过程中使用 Azure 服务。 有关详细信息,请参阅 “配置 Azure 身份验证 ”部分。 |
在容器中运行服务以启用热重载 | 真 实 | 对于 Visual Studio 版本 17.7 及更高版本,是否安装和运行热重载服务。 此服务仅支持在不调试的情况下运行, Ctrl+F5。 |
容器工具窗口设置
容器工具窗口设置适用于 Visual Studio IDE 中的“容器”窗口,其中显示了有关 Docker 容器和映像的信息。 有关详细信息,请参阅 “使用容器”窗口。
下表介绍了 容器工具窗口 设置:
设置 | 默认值 | DESCRIPTION |
---|---|---|
在修剪容器之前确认 | 始终 | 是否在修剪未使用的容器时提示你。 |
在修剪图像之前确认 | 始终 | 是否在清理未使用的图像时提示你。 |
在删除容器之前进行确认 | 始终 | 是否在删除容器时提示你。 |
在删除映像之前进行确认 | 始终 | 是否在删除图像时提示你。 |
在运行大量映像之前确认 | 始终 | 是否在一次启动超过 10 个映像的容器之前提示你。 |
容器窗口设置
容器窗口设置适用于 Visual Studio IDE 中的“容器”窗口,其中显示了有关 Docker 容器和映像的信息。 有关详细信息,请参阅 “使用容器”窗口。
下表介绍了 容器窗口 设置:
设置 | 默认值 | DESCRIPTION |
---|---|---|
在修剪容器之前确认 | 始终 | 修剪无用容器时是否提示您。 |
在修剪图像之前确认 | 始终 | 是否在清理未使用的映像时提示你。 |
在删除容器之前进行确认 | 始终 | 是否需要在删除容器时提示你。 |
在删除映像之前进行确认 | 始终 | 是否在删除图像时提示你。 |
在运行大量映像之前确认 | 始终 | 是否在一次启动超过 10 个映像的容器之前提示你。 |
在“容器”窗口中显示要使用的字符串格式 | 空白 | 在“容器”窗口中使用的显示字符串格式,支持 {ContainerName}、{ImageName}、{ProjectName} 和 {ContainerID} 令牌。 |
按 Docker Compose 项目对容器进行分组 | 始终 | 是否根据它们所属的 Docker Compose 项目对容器进行分组。 |
配置 Azure 身份验证
如果应用使用 Azure 服务,则当应用在容器中运行时,它需要适当的凭据来向 Azure 服务进行身份验证。 您通常可以在开发期间使用自己的 Azure 凭据,但为了使应用程序在容器环境中运行,容器化应用需要在生产环境中使用的凭据。
Visual Studio 2022 版本 17.6 及更高版本在单容器和 Docker Compose 项目中部署并运行 令牌 代理服务,以帮助应用和服务在 Azure 中进行身份验证。 此功能需要 Azure 标识 1.9.0 或更高版本。
启用此服务后,可以在容器中自动使用大多数 Azure 服务,而无需任何添加的配置或设置。 你的代码可以使用 DefaultAzureCredential
和 VisualStudioCredential
与 Azure 服务进行身份验证,就像在容器外部一样。 有关详细信息,请参阅 Azure 标识 1.9.0 自述文件。
若要禁用此功能,请在容器工具中的单一项目或 Docker Compose 设置中,将在容器中运行服务以启用 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
中登录。