无法找到Docker容器

15

我有一个ASP核心API项目,我正在使用Visual Studio 2017运行我的项目。在我使用命令行重命名之前,之前使用Visual Studio创建的Docker容器如下:

docker rename CONTAINER NEW_NAME

当我尝试在Visual Studio中再次运行项目时,我收到以下消息。

感谢您的帮助

Can not find docker container with the name starting with 'previous_container_name'.

你使用什么操作系统?你能查看构建了哪些镜像吗?你是否用 docker-compose.yml 和 VSC 启动 Docker Compose?请给我们提供更多信息。 - Gabbax0r
如果您使用VS“Docker”按钮运行它,则所有名称都是硬编码的,无法更改。实际上,您甚至不能更改Dockerfile和docker-compose中的某些行。 - Leo Y
9个回答

34

在解决方案目录中删除.vs文件夹(先关闭解决方案),Docker镜像名称似乎被缓存在那里的某个地方。


很有可能你需要关闭Visual Studio,因为它会占用.vs文件夹的句柄。 - Mikkk

17

当团队中有人取消了docker-compose项目的构建复选框时,我开始遇到这个错误。请确保在“生成 -> 配置管理器”中启用它。

在此输入图片描述


4

我有一个类似的问题,是因为我在打开项目后才开始使用Docker。VS在打开项目时会对Docker进行一些操作,如果没有启动Docker,则会失败。

教训:确保在启动Visual Studio之前运行Docker。如果Docker没有启动,则启动Docker,关闭你的解决方案,然后重新打开它。

VS将在打开项目时重新创建容器。


3
这是因为我手动通过命令行停止了一个容器,然后Visual Studio变得混乱了。
为了解决这个问题,我只需在docker-compose.yml中添加一个单独的空格字符并保存该文件。这会强制Visual Studio重新启动容器并连接到它。
我相信启动/停止Visual Studio也可以解决问题,但空格更快更简单。

2
我也遇到了类似的问题。 以下步骤通常可以帮助我解决问题。 解决方案1:
    1- Close VS 
    2- delete obj folder of root solution folder.
    3- delete obj folder of all projects which are involved in docker-compose file.(example all APIs)
    4- Open VS 
    5- Remove the docker-compose project from solution and add it again.
     During the creation process, don't overwrite the old files with new ones, to prevent deletion of you current docker-compose.yml configuration. 

解决方案2:
    On the first time of container creation, copy the creation command: 
    example: docker-compose  -f "[path]\docker-compose.yml" -f "[path]\docker-compose.override.yml" -f "[path]\docker-compose.vs.debug.g.yml" -p dockercompose17926074389345686639 --no-ansi up -d --no-build --force-recreate --remove-orphans

   any time there is an error just run this command manually.

如果有人能找到一个恒定的解决方案,请也让我们知道。

0

另一个原因是在您的Docker项目中使用解决方案文件夹以及使用低于15.9版本的Visual Studio 2017,升级到15.9+可以解决此问题,详见this issue


0

在我的情况下,我尝试了所有这些方法,但解决方案在V.S. 2019中非常简单。

首先,在使用19 beta的情况下,Visual Studio 2017有一个bugfix包,您可以在https://visualstudio.microsoft.com/vs/上下载并安装该包。

另外,为了自动组合,您还应该添加Docker Compose Support,请参考此链接https://learn.microsoft.com/tr-tr/dotnet/standard/containerized-lifecycle-architecture/design-develop-containerized-apps/visual-studio-tools-for-docker

1-) 在解决方案资源管理器中,右键单击包含Dockerfile的目标项目根文件夹,然后选择添加-> Docker支持,它会询问您是否总是包含,您想创建新的吗?点击是。它将创建新的Dockerfile

您将看到新的Dockerfile中有一些更改,例如您的项目更改或NuGet软件包更改的影响。

2-) 右键单击新替换的 Dockerfile 并构建镜像。 它将成功构建。

3-) 选择调试器作为 Docker,而不是 IIS Express 对比。即使在开发项目时也不要使用其他调试器,如果您不需要的话。


0
在我的情况下,我的 docker-compose.yml 文件中有 "image" 部分和 "build" 部分。我删除了 "build" 部分,因为我想让它从 Docker Registry 拉取镜像,现在它已经正常工作了。

0

如果您的项目使用启动配置文件来运行,我通过以下步骤进行了修复:

  1. 打开“管理Docker Compose启动设置VS”。
  2. 选择您当前正在使用的启动配置文件以运行应用程序。
  3. 检查启动配置文件中是否选择了特定服务。您想要运行的所有服务都应该是启动配置文件的一部分。

screenshot


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接