欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.NetCore打包docker镜像

程序员文章站 2022-04-09 16:07:36
1..NetCore 项目打包成Docker 镜像 1.1创建一个.NetCore web项目 项目名为 testmvc 此处用的是.NetCore2.1版本 1.2并且在program里面设置启动端口,默认5000 这里设置为8003端口 1.3 发布项目,并且在发布的文件里面创建一个 Docke ......

1..netcore 项目打包成docker 镜像

1.1创建一个.netcore web项目 项目名为   testmvc  此处用的是.netcore2.1版本

1.2并且在program里面设置启动端口,默认5000

 public static iwebhostbuilder createwebhostbuilder(string[] args) =>
            webhost.createdefaultbuilder(args)
                .usestartup<startup>()
            .useurls("http://*:8003");

  这里设置为8003端口

1.3 发布项目,并且在发布的文件里面创建一个 dockerfile 文件

.NetCore打包docker镜像

1.4 编写 dockerfile 文件内容

#基于 `microsoft/dotnet:1.0.0-core` 来构建我们的镜像
from microsoft/dotnet:2.1-aspnetcore-runtime

#拷贝项目publish文件夹中的所有文件到 docker容器中的publish文件夹中  
copy . /publish

#设置工作目录为 `/publish` 文件夹,即容器启动默认的文件夹
workdir /publish

#设置docker容器对外暴露8003端口
expose 8003

#使用`dotnet testmvc.dll`来运行应用程序

cmd ["dotnet", "testmvc.dll", "--server.urls", "http://*:8003"]

 

1.5 生成docker镜像,此处是在linux centos环境下生成的

.NetCore打包docker镜像

此时通过 docker images 可以看到

.NetCore打包docker镜像

2..netcore 项目的docker 镜像推送到阿里云镜像仓储

2.1 在阿里云创建自己的容器仓库 

2.2 .NetCore打包docker镜像

按照阿里云的提示进行镜像推送。

先登录,密码为阿里云的账号密码

.NetCore打包docker镜像

推送镜像,注意镜像id 和版本

.NetCore打包docker镜像

.NetCore打包docker镜像

这时候可以在阿里云的镜像版本看到自己的版本信息

.NetCore打包docker镜像

这里推送到阿里云的镜像完成

3.在linux上获取阿里云自己的docker镜像

3.1.NetCore打包docker镜像

.NetCore打包docker镜像

这时候的本地镜像仓库就存在阿里云的版本的镜像

4.在linux运行项目,多版本回滚

执行 命令

docker run --name test -d -p 8003:8003 registry.cn-hangzhou.aliyuncs.com/lijiqing/test:1.0.2

 

.NetCore打包docker镜像

 

 .NetCore打包docker镜像

版本的回滚指的是,当发布新的镜像之后 如果出现bug或者其他问题,可以将当前容器关闭,运行之前旧的镜像

当然可以用 k8s用来编排管理。