初尝发布简单Yarp服务到linux容器

注意:Net 6 的Program的代码中要加入:
builder.WebHost.UseKestrel(so =>

{

    so.ListenAnyIP(8080);

});其目的是要让服务再容器内运行时监听某端口,最好和dockerfile暴露端口一致,否则你访问容器访问不到

一.编写dockerfile
由于dockerfile一堆命令让人头晕眼花摸不着头脑,再加上我喜欢自己先发布项目release文件后拖到linux文件里,故则排除了一堆命令,只用了简单的命令:
FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

RUN echo 'Asia/Shanghai' >/etc/timezone

RUN sed -i 's/TLSv1.2/TLSv1/g' /etc/ssl/openssl.cnf

WORKDIR /app

COPY . /app

EXPOSE 8080

#ENTRYPOINT ["dotnet", "mmm.net.cooperation.Api.dll","-b","0.0.0.0"]

ENV ASPNETCORE_ENVIRONMENT=Production

ENTRYPOINT  ["dotnet","Yarp.dll"]

上述dockerfile其实只干了两件事:1.走来表明了容器的引用dotnet运行时环境为6.0.可以更具需要直接改写为对应环境就行,如3.1等
2.指示容器暴露监听了端口8080
3.容器运行时执行dotnet命令,则可以拖此dockerfile到对应linux需要打包的项目相同目录下就行
二。打开cmd或其他终端,连接linux服务器,cd 到项目和dockerfile对应的目录下即可
三。执行:docker build -t yourimagesname .        (**注意你的镜像名称后要空格加点)。这样就能打包生成了项目的镜像
四。执行:docker run -p 主机暴露的端口:容器暴露的端口 --name 容器名称 -d 上一步的镜像名称
执行完第四步,若端口没被占用则能正确运行起来一个容器
以下是其他Linux一些命令:
docker logs 容器ID      --可以查看容器的日志
docker ps                     --可以查看正确运行的容器信息
docker ps -a                 --可以查看所有容器信息,包含停用的等
docker images              --可以查看主机下的所有镜像信息
docker stop 容器id        --可以停用某容器
docker rm -f 容器id        --可以删除某容器
docker exec -it 容器id  bash  进入容器
docker logs --since 30m 容器id   查看某容器30min的日志

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容