为什么容器在CMD(docker)中启动后不启动?

为什么容器在CMD(docker)中启动后不启动?,docker,.net-core,Docker,.net Core,首先我创建一个项目的图像,然后创建容器,然后我想启动它 但启动容器后,它会退出 . 为什么对已启动的容器说“2秒前退出(145)”呢? 检查图像 我照杰米说的做了 结果是: PM> docker run myimage -d docker : Did you mean to run dotnet SDK commands? Please install dotnet SDK from: At line:1 char:1 + docker run myimage -d + ~~~~~~~

首先我创建一个项目的图像,然后创建容器,然后我想启动它 但启动容器后,它会退出 . 为什么对已启动的容器说“2秒前退出(145)”呢? 检查图像

我照杰米说的做了 结果是:

PM> docker run myimage -d
docker : Did you mean to run dotnet SDK commands? Please install dotnet SDK 
from:
At line:1 char:1
+ docker run myimage -d
+ ~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (Did you mean to...otnet SDK 
from::String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError

 https://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
DockerFile:

我正在使用本教程:

我照皮埃尔说的做了。这就是结果 (不变)

您缺少需要将文件复制到Docker图像中的部分,如前面的
入口点所示:

COPY app/bin/Release/netcoreapp2.2/publish/ app/

该问题与我的docker文件有关:

我创建了另一个项目 我遵循了本教程:

我在上面提到的链接中使用了docker文件,并根据我的项目需要对其进行了一些修改

  FROM microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1709 AS base
  WORKDIR /app
  EXPOSE 80
  EXPOSE 443

  FROM microsoft/dotnet:2.2-sdk-nanoserver-1709 AS build
  WORKDIR /src
  COPY ./wa2.csproj ./
  RUN dotnet restore
  COPY . .
  WORKDIR /src
  RUN dotnet build -c Release -o /app

  FROM build AS publish
  RUN dotnet publish -c Release -o /app

  FROM base AS final
  WORKDIR /app
  COPY --from=publish /app .
  ENTRYPOINT ["dotnet", "wa2.dll"]
然后我从项目中创建了一个图像

  $ docker build -t myimage2 -f Dockerfile .
(如前所述,我必须从docker切换到windows容器

我遇到了一个奇怪的错误,这个错误将通过 (顺便说一下,VPN也关闭了)

构建映像时出现上述错误。这是错误行“运行dotnet restor”

然后我在项目文件夹中执行了这两行on命令

//创建容器

 $ docker build -t (project name) .
 $ docker run -d -p 8080:80 --name (container name) (project name)
//流动容器

 $ docker build -t (project name) .
 $ docker run -d -p 8080:80 --name (container name) (project name)
容器已经创建,我可以运行它,然后我可以从Visual studio的两个端口和Docker的两个端口看到结果


如果要使用
docker run myimage-d运行图像(即不分离)您将看到输出到容器内控制台的任何文本,而不是使用
docker start
命令。这将为您提供有关容器停止的原因的线索。请检查问题,我已对其进行了修改。@JamieTaylorI正在使用本教程在docker中主持一个.net核心项目:从输出来看,您似乎是usi正在生成运行时映像,但正在调用SDK命令。正如@PierreB.所说,您可以共享您的dockerfile吗?通过编辑将其添加到问题中;)我已将结果添加到问题中请检查@PierreB是否有显示相同问题的日志?(顺便说一句,如果你添加文本而不是图像会更容易)我不知道“日志”是什么。它在哪里@Pierreuse
docker日志
-您似乎对docker很陌生,也许您应该看看官方网站和入门指南;)