其他分享
首页 > 其他分享> > docker运行.net core

docker运行.net core

作者:互联网

一、测试dotnet是否安装

dotnet --info

如果出现如下信息,则已安装,否则请进行安装,安装就不细说了,到.net官网找对应的版本

 

二、创建一个console示例程序

dotnet new console -o App -n DotNet.Docker

三、修改program.cs代码

var counter = 0;
var max = args.Length != 0 ? Convert.ToInt32(args[0]) : -1;
while (max == -1 || counter < max)
{
    Console.WriteLine($"Counter: {++counter}");
    await Task.Delay(TimeSpan.FromMilliseconds(1_000));
}
View Code

四、发布.net应用

dotnet publish -c Release

五、修改dockfile文件,这里实际上把第四步发布的命令也可以包含进来

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build-env
WORKDIR /app

# Copy everything
COPY . ./
# Restore as distinct layers
RUN dotnet restore
# Build and publish a release
RUN dotnet publish -c Release -o out

# Build runtime image
FROM mcr.microsoft.com/dotnet/aspnet:6.0
WORKDIR /app
COPY --from=build-env /app/out .
ENTRYPOINT ["dotnet", "DotNet.Docker.dll"]
View Code

为了提高安全性,可以选择退出诊断管道。 选择退出后,容器将以只读方式运行。 为此,请将 DOTNET_EnableDiagnostics 环境变量指定为 0(就在 ENTRYPOINT 步骤之前):

ENV DOTNET_EnableDiagnostics=0

六、构建镜象,通常使用下面命令构建镜象

docker build -t counter-image -f Dockerfile .

七、创建容器

docker create --name core-counter counter-image

八、起动容器

docker start core-counter

九、连接到容器

docker attach --sig-proxy=false core-counter

连接成功,则开始运行如下计时器了

docker attach --sig-proxy=false core-counter
Counter: 7
Counter: 8
Counter: 9
^C

十、另外也可以单次运行实例

Docker 提供了 docker run 命令,用于将容器作为单一命令进行创建和运行。 使用此命令,无需依次运行 docker create 和 docker start。 另外,还可以将此命令设置为,在容器停止时自动删除容器。 例如,使用 docker run -it --rm 可以执行两项操作,先自动使用当前终端连接到容器,再在容器完成时删除容器:

docker run -it --rm counter-image 3
Counter: 1
Counter: 2
Counter: 3

十一、还可以在ENTRYPOINT下运行同容器的其它dll

docker run -it --rm --entrypoint "bash" counter-image
root@9f8de8fbd4a8:/App# ls
DotNet.Docker  DotNet.Docker.deps.json  DotNet.Docker.dll  DotNet.Docker.pdb  DotNet.Docker.runtimeconfig.json
root@9f8de8fbd4a8:/App# dotnet DotNet.Docker.dll 7
Counter: 1
Counter: 2
Counter: 3
^C
root@9f8de8fbd4a8:/App# exit
exit
View Code

 

 

 

 

 

 

摘自:https://docs.microsoft.com/zh-cn/dotnet/core/docker/build-container?tabs=windows

标签:core,Counter,--,counter,dotnet,docker,Docker,net
来源: https://www.cnblogs.com/hunter98/p/16523526.html