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

时间:2019-07-03 10:51:59

标签: docker .net-core

首先,我创建项目的图像,然后创建容器,然后我要启动它 但是启动容器后,它退出了 。为什么对启动的容器说“ 2秒前退出(145)”? 检查图像

exited

我做了@Jamie所说的 这是结果:

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:

enter image description here

我正在使用本教程: This

我按照@Pierre的话做了。这是结果 (不用找了) enter image description here

2 个答案:

答案 0 :(得分:2)

您缺少将文件复制到Docker映像中的部分,如ENTRYPOINT之前的the tutorial you are following所示:

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

答案 1 :(得分:0)

问题与我的docker文件有关:

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

我在提到的链接中使用了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 .

(我不得不像提到的here从docker切换到Windows容器

我遇到了一个奇怪的错误,该错误将在this link的帮助下解决 (顺便说一下,VPN也已关闭)

建筑物图像上提到的错误。这是错误行“ RUN dotnet恢复器”

here

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

//创建容器

 $ docker build -t (project name) .

//运行容器

 $ docker run -d -p 8080:80 --name (container name) (project name)

容器已创建,我可以运行它。然后我可以从Visual Studio的2个端口看到另一个端口的结果,

image