windows下docker与.net core 的简单示例
一 windows 下安装docker
二 .net core 项目
- 新建一个空的ASP.NET Core Web 应用程序
- 在该项目的目录下执行
dotnet publish,可以看到在bin\Debug\netcoreapp2.1目录下生成publish - 在
publish目录下执行dotnet WebApplication1.dll可以运行项目
主要代码如下:
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.UseKestrel()
.UseUrls("http://*:5001")
.UseContentRoot(Directory.GetCurrentDirectory())
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
}
}
三 镜像
在publish目录下新建Dockerfile文件
# 基于microsoft/dotnet:latest构建Docker Image
FROM microsoft/dotnet:latest
# 进入docker中的/usr/local/src目录
RUN cd /usr/local/src
# 创建WebApplication1目录
RUN mkdir WebApplication1
# 设置工作路径
WORKDIR /usr/local/src/WebApplication1
# 将当前文件夹下的所有文件全部复制到工作目录
COPY *.* ./
# 向外界暴露5001端口
EXPOSE 5001
# 执行dotnet WebApplication1.dll命令
CMD ["dotnet", "WebApplication1.dll"]
生成镜像
docker build -t core/docker .
core/docker可以理解为名称
如果是第一次生成,由于需要下载microsoft/dotnet:latest这个Docker Image作为基础Image
运行
把装好的docker运行起来,执行以下命令:
docker run -it -p 8001:5001 core/docker
- -it参数表示需要提供一个模拟的shell环境,并要求有用户交互功能,这样当我们按下Ctrl+C的时候,就可以停止我们的应用程序
- -p 8001:5001参数表示需要将Docker Container的5001端口映射到主机环境的8001端口,也就是客户端可以直接通过8001端口访问我们的应用程序
- core/docker参数指定了需要运行的Docker Image。此处采用默认的latest标签
docker ps //运行该命令可以查看所有容器,包括刚才运行的core/docker
错误解决
Error:
An assembly specified in the application dependencies manifest (WebApplication1.deps.json) was not found:
package: 'System.Data.SqlClient', version: '4.4.3'
path: 'runtimes/unix/lib/netstandard2.0/System.Data.SqlClient.dll'
依赖的版本与实际引用的版本不相同,更细到最新的dotcore,再更新nuget
reference
在docker中运行ASP.NET Core Web API应用程序
Docker容器环境下ASP.NET Core Web API应用程序的调试
windows下docker与.net core 的简单示例的更多相关文章
- windows下docker启动.net core mvc随手记
docker基本命令: 查看当前的版本docker--version查看本地所有镜像:docker images查看当前正在运行的所有容器docker ps停止某个容器:docker stop 容器I ...
- Windows下构建ASP.NET Core+Code First+Docker
背景介绍 本文将会示范如何在Windows系统下基于ASP.NET Core构建跨平台服务,并通过Docker容器运行发布. 首先说一下为什么选择这一套组合: 我本人和我们Code4Thought团队 ...
- Windows下docker的安装,将ASP.NET Core程序部署在Linux和Docker中
参考文章: https://www.cnblogs.com/jRoger/p/aspnet-core-deploy-to-docker.html docker for windows下载连接: htt ...
- Windows 下 Docker 的简单学习使用过程之二 Docker For windows
1. Docker For windows 最新版也支持到了 docker ce 18.06 (这个博客的编写时间是 2018.8.17 当时是最新的) 2. 下载安装. 大概500m 左右的安装文件 ...
- Windows 下 Docker 的简单学习使用过程之一 dockertoolbox
1. Windows 下面运行 Docker 的两个主要工具1): Docker for Windows2): DockerToolbox区别:Docker For Windows 可以理解为是新一代 ...
- Windows 下针对python脚本做一个简单的进程保护
前提: 大家运行的脚本程序经常会碰到系统异常关闭.或被其他用户错杀的情况.这样就需要一个进程保护的工具. 本文结合windows 的计划任务,实现一个简单的进程保护的功能. 利用py2exe生产 ex ...
- Windows 下 docker 部署 gitlab ci
一.安装 1. 安装 docker Docker下载 注意:Windows 10 家庭版获取 之前的版本不能直接安装 Docker ,而是需要去安装 Docker Toolbox 我这里安装的是 Do ...
- windows下Docker的安装
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...
- windows下docker的安装及常用命令学习
docker search 镜像名 本文主要介绍Docker在Windows下的安装.关于Docker的介绍和文档在其官网中可以找到:http://www.docker.com .安装环境:Windo ...
随机推荐
- PL/SQL 调用JAVA使用UDP发送数据
步骤如下 1.直接在SQL命令中写入JAVA代码(用SYS帐号执行,不然权限等太麻烦) create or replace and resolve java source named udp as i ...
- jupyter iPython web sit use 1
I want Jupyter to print all the interactive output without resorting to print, not only the last res ...
- 通过Blazor使用C#开发SPA单页面应用程序(4) - Ant Design Button
前面学习了Blazor的特点.环境搭建及基础知识,现在我们尝试的做个实际的组件. Ant Design是蚂蚁金服是基于Ant Design设计体系的 UI 组件库,主要用于研发企业级中后台产品.目前官 ...
- python paramiko外部传参和内部调用命令的方法
学习了很久的python,但在工作中使用的时候,却发现不知道怎么传参进入到python中执行,所以这两天就研究 了python args怎么将外部参数传入到python中执行 1.首先使用python ...
- LoRa硬件调试-前导码
前言 已知LoRa数据包在负载之前会有一段前导码,接收端是先检测前导码,收到前导码之后才认为有数据发送过来. 那么不同的前导码的长度会有什么影响呢? 前导码长短的优劣势 - 前导码实际上是占符号的,也 ...
- egret之每日登陆奖励
//*******首登奖励********* */ //*********************** */ public setUserSetting(key, value) { if (value ...
- runnable和thread实现多线程的区别
下面以典型的买票程序(基本都是以这个为例子)为例,来说明二者的区别. 首先通过继承Thread类实现,代码如下: class MyThread extends Thread{ private int ...
- windows系统查询指定端口运行的进程并关闭
假如占用的端口是80: 先打开cmd命令窗口 再查找80端口占用的进程:netstat -aon|findstr "80" ,找到对应的程序的PID号: 根据PID号找到 ...
- PHP面相对象编程-重载、覆盖(重写) 多态、接口
http://www.ctolib.com/topics-21262.html http://cnn237111.blog.51cto.com/2359144/1284085 http://blog. ...
- centos7安装使用docker-tomcat-mysql
windows安装centos虚拟机 下载安装 virtualBox下载 https://mirrors.tuna.tsinghua.edu.cn/help/virtualbox/ centos7镜像 ...