ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

docker运行.net core

2022-07-27 09:32:57  阅读:150  来源: 互联网

标签:core Counter -- counter dotnet docker Docker net


一、测试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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有