使用Docker部署应用程序

首先确保已经安装Docker 桌面软件,如下图:

然后,把需要部署到Docker上面的项目,咱们先添加Docker的支持,启动项目右键 -> 添加 -> Docker支持,选择 Linux

然后会自动生成Dockerfile文件,在里面可以看见Docker有关的配置信息。

我们需要对Dockerfile的配置文件做一些更改:

然后修改dockerfile文件的属性:

在启动项目的Properties下,修改launchSetting.Json启动项的配置文件,把默认启动的端口号也改成和docker默认的端口号一样的:

接着,在Program下面,CreateHostBuilder里面绑定指定的端口号:

然后,在Startup里面,Configure下面需要做点修改:swagger默认是写在 if (env.IsDevelopment())判断语句里面的,代表使用编译器启动,才会进来。我们把swagger有关的写到外面去,不然发布以后,可能会看不到swagger的页面:

一切准备就绪,我们准备发布一下:

项目右键,选择发布,选择发布到本地文件夹:

随便先自定义一个文件夹,例如我存放在D盘的Wsk_Publish下面:

对发布的一些选项进行更改,把删除现有文件的选项设为 True:

然后,右上角点击发布,发布成功即可:

下面是把发布的程序部署到docker上的关键操作了。按住windows按键+X,使用管理员权限启动 power shell,然后定位到发布的程序的根目录下:

然后,使用   docker build -t 镜像别名(例如我起个别名,叫wesky) .

注意最后面需要加空格,然后一个点

然后就会自动下载有关的一些资源。为了看清文字,我调了下背景色,以及执行效果如下:

由于使用的是默认的,所以可能拉取资源会比较慢,也可以在Dockerfile配置文件把默认使用microsoft的地址改为其他的地址,这里不提供该方面的镜像地址,因为我都是用原生的。

等待一段时间,都拉取好了以后,我们打开docker客户端,可以看见镜像已经安装好了:

我们现在用命令来启动它: docker run -d -p 35678:35678 --name wesky wesky

命令说明,见图中说明。

运行成功,会显示出一串16进制字符串,代表OK了。这个时候,切换回docker客户端,可以看见程序正在运行:

点击正在运行的镜像,就可以打开一些监控页面,包括日志、资源占用等信息:

功能按钮信息,待自己去发现。

现在,我们试试在本机上打开swagger,并执行之前的api进行打印一串符号。地址是本机ip+设置的端口号:

可以打开页面,并且测试成功,到此部署程序到docker圆满结束,撒花~~

备注:如果发现docker无法使用,请确认是否开启系统虚拟化,怎么开启在该系列的第一篇文章有教程。如果虚拟化已启动,就看看docker当前是linux还是windows容器。我这边使用的是linux容器,如果你是windows容器需要切换Linux,需要在电脑桌面docker图标右键,选择 switch to linux container……,如果显示的是 switch to windows container…… 就代表你已经使用的是linux容器了。

最后,如果各位大大们觉得有帮助,欢迎打赏呀!!!

六、.net core (.NET 6)程序部署到Docker上的更多相关文章

  1. .NET Core 3.0 部署在docker上运行

    自从.NET Core3.0发布之后,写了几篇关于.NET Core 3.0的文章,有助于你快速入门.NET Core3.0. 本篇文章主要讲解如何一步步创建一个mvc项目,然后发布并部署在Docke ...

  2. docker多个容器连接 将 Rails 程序部署到 Docker 容器中

    在docker中使用MySQL数据库 https://yq.aliyun.com/articles/583765 将 Rails 程序部署到 Docker 容器中

  3. 把AspDotNetCoreMvc程序运行在Docker上-part3:使用独立的存储容器

    接上一篇博文<把AspDotNetCoreMvc程序运行在Docker上-part2:修改容器以及发布镜像>,这次我们看看如何使用docker存储数据. 背景 之前的示例都只有一个网站应用 ...

  4. 把AspDotNetCoreMvc程序运行在Docker上-part5:使用docker-compose

    在上一part<把AspDotNetCoreMvc程序运行在Docker上-part4:实现负载均衡>中,我们通过几个比较复杂的步骤在docker平台上实现了对网站程序的负载均衡,配置步骤 ...

  5. 把AspDotNetCoreMvc程序运行在Docker上-part4:实现负载均衡

    在上一part<把AspDotNetCoreMvc程序运行在Docker上-part3:使用独立的存储容器>,我们利用MySql容器和Volume实现了真正意义上的数据存储.整个结构非常简 ...

  6. 把AspDotNetCoreMvc程序运行在Docker上-part2:修改容器以及发布镜像

    在上一个part<把AspDotNetCoreMvc程序运行在Docker上-part1>,已经将成功将aspdotnetcore程序运行在两个不同的容器中,目前两个容器的内容完全相同,只 ...

  7. 【Step By Step】将Dotnet Core部署到Docker上

    本教程的前提是,你已经在Linux服务器上已经成功的安装了Docker,我会大概介绍在此过程中用到的Docker命令,并不会介绍所有的Docker命令(因为我也不会). 一.在Docker中运行Dot ...

  8. 把AspDotNetCoreMvc程序运行在Docker上-part1

    接<基于ASP.Net Core学习Docker技术第一步:在CentOS7安装Docker平台>这个博文,在搭建完成Docker平台之后,可以开始让aspdotnetcore程序运行在d ...

  9. Windows下docker的安装,将ASP.NET Core程序部署在docker中

    参考文章: https://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html https://www.cnblogs.com/jRo ...

随机推荐

  1. linux下安装并使用msgfmt命令

    msgfmt安装方法: sudo apt-get install gettext 编码 po 文件为 mo 文件: msgfmt -o test.mo test.po mo 文件反编码成 po文件: ...

  2. php和mysql数据库防SQL注入的有效解决办法

    <?php$mysqli = new mysqli("localhost", "my_user", "my_password", &q ...

  3. hdu4415 不错的想法题

    题意: 一个人他有一定的血,有一些怪物,他去杀怪物,有的怪物杀死他后还可以在不费自己血的情况下任意杀死一些怪物,问你他最多杀死多少怪物,在最多杀怪前提下最好用多少血,(大体题意是这样). 思路: 首先 ...

  4. node-多进程

    Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核 cpu 的系统上创建多个子进程,从而提高性能. 每个子进程总是带有三个流对象: child.stdin, ...

  5. Day009 Arrays类

    Arrays类 数组的工具类java.util.Arrays 由于数组对象本身并没有什么方法可以供我们调用,但Api中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作. 查 ...

  6. Gridea博客无法载入CSS样式的解决办法

    今日在使用Gridea客户端更新博客的过程中,推送到远端仓库后内容显示正常,但是无法载入主题样式,就是没有载入CSS样式,折腾了一下午在搞懂问题出在哪里了,下面说一下自己的解决思路. 问题描述 首先, ...

  7. 【转】风控中的特征评价指标(二)——PSI

    转自:https://zhuanlan.zhihu.com/p/79682292 风控业务背景 在风控中,稳定性压倒一切.原因在于,一套风控模型正式上线运行后往往需要很久(通常一年以上)才会被替换下线 ...

  8. v-on精炼

    v-on的介绍 在Vue中,常使用v-on指令用于监听事件的发生,v-on指令就类似于JavaScript中的addEvelistener()方法 v-on的基本使用 <div id=" ...

  9. 使用FastDFS进行文件管理

    使用FastDFS进行文件管理 FastDFS简介 FastDFS: FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等, ...

  10. FHD 4K 8K分辨率

    4K(2160P,即4096×2160的像素分辨率)和8K(4320P,即7,680 × 4,320的像素分辨率)属于UHDTV. FHD是FULL HD(Full High Definition)的 ...