ASP.NET CORE做的网站运行在docker实践
用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 “容器主机”与“容器操作系统”
ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署)
ASP.NET CORE做的网站运行在docker实践的更多相关文章
- ASP.NET CORE做的网站运行在docker上(不用dockerfile文件部署)
按网上的做法用dockerfile文件是可以弄得出来的,http://www.docker.org.cn/article/119.html, 不过我想把网站文件放在外面硬盘目录,再映射进去,这样只要在 ...
- 在 Mac OS 上创建并运行 ASP.NET Core 1.0 网站
var appInsights=window.appInsights||function(config){ function r(config){t[config]=function(){var i= ...
- win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序
本文是一个非常简单的博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台. 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单. Visua ...
- 牛腩学ASP.NET CORE做博客(视频)
牛腩学习ASP.NET CORE做的项目,边学边做. 目录: 01-dotnetcore网站部署到centos7系统上(时长 2:03:16) 02-前期准备及项目搭建 (时长:0:23:35) 03 ...
- win10 uwp 使用 asp dotnet core 做图床服务器客户端
原文 win10 uwp 使用 asp dotnet core 做图床服务器客户端 本文告诉大家如何在 UWP 做客户端和 asp dotnet core 做服务器端来做一个图床工具 服务器端 从 ...
- 如何在ASP.NET Core程序启动时运行异步任务(3)
原文:Running async tasks on app startup in ASP.NET Core (Part 3) 作者:Andrew Lock 译者:Lamond Lu 之前我写了两篇有关 ...
- 微服务中的健康监测以及其在ASP.NET Core服务中实现运行状况检查
1 .什么是健康检查? 健康检查几乎就是名称暗示的.它是一种检查您的应用程序是否健康的方法.随着越来越多的应用程序转向微服务式架构,健康检查变得尤其重要(Health Check).虽然微服务架构有很 ...
- 创建asp.net core 的静态网站
这个名字听起来很怪 既然是静态网站 为什么要是asp.net core的呢? 1.在vs上面好像不能创建纯静态的网站,所以我们就想创建一个asp.net core的空网站 然后在里面使用静态的html ...
- 记一次asp.net core 在iis上运行抛出502.5错误
asp.net core 在iis上运行抛出502.5异常的部分原因以及解决方案 环境说明 已安装 .net core runtime 2.1.401 已安装 .net core windows ho ...
随机推荐
- python的array初识
from array import array """ 'b' signed char int 1 'B' unsigned char int 1 'u' Py_UNIC ...
- Git服务器安装详解及安装遇到问题解决方案
git是一个不错的版本管理的工具.现在自己在搞一个简单的应用程序开发,想使用git来进行管理.在Google了配置文档后,还是受了N多的挫折.某些文档质量不高,浪费了好多时间...... 好,切入正题 ...
- servlet实现简单的登录功能
1.登录页面 Login.html <%@page contentType="text/html" pageEncoding="UTF-8"%> & ...
- OO第一单元总结
OO第一单元作业总结 一.前言 开学四周,不知不觉已经做了三次OO作业.事实上,每一次作业对我来说都是很大的挑战,需要花费大量的时间和精力来学习. 虽然学得很艰苦,但最后还是连滚带爬地完成了.(好惨一 ...
- ol图层支持的数据源
ol.source.BingMaps,必应地图的数据: ol.source.Cluster,聚族矢量数据: ol.source.ImageCanvas,数据来源是一个canvas元素,其中数据是图片: ...
- MYSQL定时任务 触发器
流程: 查看时间调度器是否开启,OFF关闭,ON开启 SHOW VARIABLES LIKE 'event_scheduler' 设置开启 set GLOBAL event_scheduler = 1 ...
- 2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
- JavaEE 藏经阁
后台技术 工作流引擎:Activiti5 ORM框架:Mybatis/Hibernate JPA Web框架:SpringMVC/Struts 核心框架:Spring Framework4.0 任务调 ...
- poj2688
#include<iostream> using namespace std; #include<time.h> int m,n; ][]; ][]; typedef stru ...
- Python Flask Restful
Flask Restful 1.flask restful 在flask基础上进行一些封装,主要用于实现restful接口 2.restful的理解 1)URI(统一资源标识符):每一个URI代表一 ...