用VS2017 建立了 DotNet Core 2.2 的网站后,如何转移到 Docker 下运行?

下面分两种方式来实践: 1、直接手动命今行,将本机目录映射进Docker,运行网站。2、制作 Image ,再启动 Docker 运行。

一、将本机目录映射进Docker,运行网站fil

1. vs中建立ASP.NET CORE网站,类名为WebApplication3. (在创建时,可以勾选上 Docker 。好处是会自动生成 Dockerfile 文件,方便后面抄写命令。)

2. 发布到 e:/app 下。(随便建的发布目录)

3. 先在本地CMD命令行测试一下是否成功,cd e:\app, 再运行docnet WebApplication3.dll

4. 浏览器输入http://localhost:5000 可以访问网站

5. 退出命令行工具,开始进行docker镜像部署,前提是先装好docker,如果映射本地端口是80则记得先把IIS停了(如果你装了IIS的话)

6. 在命令行上先安装 DotNetCore 运行环境:Docker pull microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803  和 Docker pull microsoft/dotnet:2.2-sdk-nanoserver-1803

这两个命令行的具本内容,可以在工程自动生成的 Dockerfile 中找到。

如果遇到错误:image operating system "windows" cannot be used on this platform

请将 Docker 切换到windows 模式。

7. 命令行CMD中输入docker命令 docker run -p 8001:80 -v e:/app:c:/wwwroot -w /wwwroot microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803 dotnet WebApplication3.dll

解释下上面的命令:运行docker容器,名字叫microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803,这是微软官方的asp.net core镜像,映射本地端口8001到容器内的80端口,把本地目录e:/app 映射为容器里的 C:/wwwroot 目录 , 把容器内的工作目录 设置为 /wwwroot,容器运行起来后再运行命令 dotnet /wwwroot/WebApplication3.dll

请留意 -v 后面目录的写法。

8.在浏览器中输入http://localhost:8001 应该就可以访问网站了,哪怕在命令行中按ctrl+c退出,但是实际上docker容器也是正在运行中,输入命令docker ps 可以看到正在运行的容器。

二、网站制作 Image ,再启动 Docker 运行

1. 在 e:/app 目录下,创建 Dockerfile 文件

FROM microsoft/dotnet:2.2-aspnetcore-runtime-nanoserver-1803
EXPOSE 80
EXPOSE 443 FROM microsoft/dotnet:2.2-sdk-nanoserver-1803
COPY . .
ENTRYPOINT ["dotnet", "WebApplication3.dll"]

2. 在命令行中输入 “docker build -t web3 . ” 创建镜像文件

3. 通过 docker images 可以查看到新建的 web3 镜像。

4. 启动镜像中的网站  docker run --name myWeb -p 9001:80 -d web3

其中 -d 是后台运行的意思。输出一串编码,表示已经运行了。

5. 在浏览器中输入http://localhost:9001 应该就可以访问网站了。

6. 常用调试命令  docker ps 列出当前正在运行的 container , 还有  docker logs <container-id> 查看程序运行的log信息。

删除 container 和 删除 image  也常用到。

三、参考文章

了解用于 Linux 和 Windows 容器的 Docker “容器主机”与“容器操作系统”

Docker简单使用

ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署)

ASP.NET Core 2.1 使用Docker运行

.net core build docker image

ASP.NET CORE做的网站运行在docker实践的更多相关文章

  1. ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署)

    按网上的做法用dockerfile文件是可以弄得出来的,http://www.docker.org.cn/article/119.html, 不过我想把网站文件放在外面硬盘目录,再映射进去,这样只要在 ...

  2. 在 Mac OS 上创建并运行 ASP.NET Core 1.0 网站

    var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...

  3. win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序

    本文是一个非常简单的博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台. 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单. Visua ...

  4. 牛腩学ASP.NET CORE做博客(视频)

    牛腩学习ASP.NET CORE做的项目,边学边做. 目录: 01-dotnetcore网站部署到centos7系统上(时长 2:03:16) 02-前期准备及项目搭建 (时长:0:23:35) 03 ...

  5. win10 uwp 使用 asp dotnet core 做图床服务器客户端

    原文 win10 uwp 使用 asp dotnet core 做图床服务器客户端 本文告诉大家如何在 UWP 做客户端和 asp dotnet core 做服务器端来做一个图床工具   服务器端 从 ...

  6. 如何在ASP.NET Core程序启动时运行异步任务(3)

    原文:Running async tasks on app startup in ASP.NET Core (Part 3) 作者:Andrew Lock 译者:Lamond Lu 之前我写了两篇有关 ...

  7. 微服务中的健康监测以及其在ASP.NET Core服务中实现运行状况检查

    1 .什么是健康检查? 健康检查几乎就是名称暗示的.它是一种检查您的应用程序是否健康的方法.随着越来越多的应用程序转向微服务式架构,健康检查变得尤其重要(Health Check).虽然微服务架构有很 ...

  8. 创建asp.net core 的静态网站

    这个名字听起来很怪 既然是静态网站 为什么要是asp.net core的呢? 1.在vs上面好像不能创建纯静态的网站,所以我们就想创建一个asp.net core的空网站 然后在里面使用静态的html ...

  9. 记一次asp.net core 在iis上运行抛出502.5错误

    asp.net core 在iis上运行抛出502.5异常的部分原因以及解决方案 环境说明 已安装 .net core runtime 2.1.401 已安装 .net core windows ho ...

随机推荐

  1. IDEA_教你十分钟下载并破解IntelliJ IDEA(2017)(转)

    之前都是用myeclipse,但是最近发现看的很多教学视频都是使用 IntelliJ IDEA,于是决定换个软件开始新的学习征程! 下面讲讲我是如何在十分钟之内安装并破解该软件. 1.首先,我找到了  ...

  2. C/C++中的内存对齐问题和pragma pack命令详解

    这个内存对齐问题,居然影响到了sizeof(struct)的结果值.突然想到了之前写的一个API库里,有个API是向后台服务程序发送socket请求.其中的socket数据包是一个结构体.在发送soc ...

  3. QT杂记(网上资料整理而成)

    1.新建工程时,Qwidget和Qdialog和Qmianwindow三者的区别? QWidget是所有图形界面的基类QMainWindow是一个提供了菜单.工具条的程序主窗口QDialog是对话框. ...

  4. 1#Two Sum(qsort用法)

    void*空类型指针,就好像暂时还没有确定类型,任何类型都可以赋给它.但是具体操作时一定要确定类型(如下,比较时先转Node) cmp返回一定是int,有-1,0,1三种,如果是1则第一个数要放在第二 ...

  5. 壁虎书8 Dimensionality Reduction

    many Machine Learning problems involve thousands or even millions of features for each training inst ...

  6. CodeForces #549 Div.2 C Queen

    题目 水题,dfs #include <iostream> #include <stdio.h> #include <algorithm> using namesp ...

  7. 解决vue webApp使用lib-flexible和px2rem引用第三方ui库后,样式变小问题

    首先,需要卸载项目中的postcss-px2rem. npm uninstall postcss-px2rem --save-dev 其次,安装postcss-px2rem-exclude npm i ...

  8. centos下设置nodejs开机启动

    node环境的安装便不再赘述了,网上有很多教程,也非常简单. 上一篇博客介绍了用nginx代理nodejs.这一篇是使用pm2实现nodejs的自动重启. 什么是pm2? 如官网介绍的,pm2是nod ...

  9. [daily] 如何用emacs+xcscope阅读内核源码

    假设 首先我假设: 你已经学会了使用emacs. 同时也学会了使用cscope. 读过cscope官网上,关于emacs的使用指引. 它的指引就是请你去阅读xcscope.el的源码,当然这无可厚非, ...

  10. react-router@4.0 使用和源码解析

    如果你已经是一个正在开发中的react应用,想要引入更好的管理路由功能.那么,react-router是你最好的选择~react-router版本现今已经到4.0.0了,而上一个稳定版本还是2.8.1 ...