用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. 51nod 1617 奇偶数组

    传送门 回来看一眼51nod,发现自己掉到rank4了,赶紧切道题回rank3. 一眼不会做,这种东西应该慢慢找规律吧……然后看到数据范围其实比较小,应该是单次log的,那是不是可以分治啊. #inc ...

  2. (55)Wangdao.com第八天_JavaScript 字符串中使用 \u 输出Unicode字符

    JavaScript中,使用Unicode 需要 \u 进行转义,格式 "\u十六进制" console.log(\u0031); console.log(\u0041); // ...

  3. react_app 项目开发 (6)_后台服务器端-node

    后台服务器端 负责处理前台应用提交的请求,并向前台返回 json 数据 前台应用 负责 展现数据与用户交互 发 ajax 请求与后台应用交互 yarn add axios /src/api/ajax. ...

  4. Windows系统IntelliJ IDEA安装配置

    IntelliJ IDEA安装 IntelliJ IDEA,是java编程语言开发的集成环境,业界公认的最好的Java开发IDE之一.打开IDEA官方网站https://www.jetbrains.c ...

  5. Sum It Up---(DFS)

    Sum It Up Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total S ...

  6. solr 入门

    这个博客写的不错,很详细 https://blog.csdn.net/wzy18210825916/article/details/80946454

  7. ASP.NET Core 2.2 迁移至 3.0 备忘录

    将 ASP.NET Core 2.2 迁移至 ASP.NET Core 3.0 需要注意的地方记录在这篇随笔中. TargetFramework 改为 netcoreapp3.0 <Target ...

  8. iOS 自定义一个常规的TabBar

    #import "WJWBaseTabBarViewController.h" #import "WJWTabBarButton.h" #import &quo ...

  9. SQL开发——SQL语法

    文档资料参考: 参考:http://www.w3school.com.cn/sql/sql_syntax.asp 参考:http://wiki.jikexueyuan.com/project/sql/ ...

  10. set和 map 数据结构

    set/map数据结构 创建: var  s=new Set(); 添加成员 s.add(1) 遍历 for of s.froEach 删除 s.delete() 判断存在 s.has() 清除 s. ...