windows 容器方案

栏目: 编程工具 · 发布时间: 6年前

内容简介:Windows Container提供2种运行时:其中,

1. Windows Container 运行时

Windows Container提供2种运行时: Window Server ContianerHyper-V Container

其中, Windows Server Container 与Linux Contianer容器模型一致,容器与底层操作系统共享内核,所以它们会很轻量而且运行迅速。当你在容器中启动一个进程的时候,这个进程实际上运行在宿主机上,可以使用任务管理器或者Powershell 命令 Get-Process 获取到这个进程的信息。

Hyper-V Contianer 则是一种全新的容器运行时模型,它将在宿主机上启动一个很小的虚拟机,所以容器将具备自己独立的操作系统内核。当你在Hyper-V Container中启动进程的时候,宿主机对这个进程是无感知的。Hyper-V Container提供了更好的隔离性,而且这个虚拟机被裁减得非常小,所以性能仍然会不错。

在Windows Server 2016上,你可以在2种不同的运行时之间选择;而Windows 10上虽然也提供了容器服务,但是只能运行Hyper-V Contianer。

windows 容器方案

2. Docker for Windows

2.1. windows 10

windows 10 可安装Docker-CE, Docker Community Edition for Windows

2.2. WIN SERVER 2016

WIN SERVER 2016 可安装docker-EE win server 2016可以通过以下命令安装 docker-ee

Install-Module DockerMsftProvider -Force
Install-Package Docker -ProviderName DockerMsftProvider -Force

上述命令执行完成之后,需要使用以下命令检查一下是否需要重启系统。

(Install-WindowsFeature Containers).RestartNeeded

如果需要重启的话,可执行以下命令重启系统

Restart-Computer

其他

windows 其他的老版本的系统可通过Docker Toolbox下载安装

Docker Toolbox 下载链接

3. .net core 2.1 docker 运行

3.1. 环境

服务器 :win server2016 Docker-EE 开发环境 :Windows 10 专业版 .net core : 2.1.402

开发环境搭建

下载并按照.net core sdk在开发机器上: .net core SDK下载地址

按照完成后可执行以下命令查看dotnet版本:

dotnet --version

服务器环境搭建

在win server2016中按照上节方法按照Docker-EE即可

3.2. Demo

在已搭建好的开发机上找一个自己喜欢的路径,执行以下命令创建webapi项目:

dotnet new webapi -o DockerWebApi

项目创建成功之后,稍作一些改动。

修改端口

这里修改一下默认端口,使用http协议,8000端口。相关文件路径 .\DockerWebApi\Program.cs ,增加下图中红框内代码指定端口 windows 容器方案

api修改

然后再改一下默认的接口返回吧,路径 .\DockerWebApi\Controllers\ValuesController.cs ,将接口返回稍作改动一下 windows 容器方案

运行

完成以上改动以后,可以DockerWebApi目录下在执行以下命令运行看下效果

dotnet run

windows 容器方案 windows 容器方案

从图中可以看出一切正常

打包镜像

打包镜像之前,需要在DockerWebApi目录下在执行以下命令发布程序:

dotnet publish

windows 容器方案

发布后的路径在 ockerWebApi\bin\Debug\netcoreapp2.1 目录下,然后在该目录下创建Dockerfile文件,且内容如下:

# 基于microsoft/dotnet:latest构建Docker Image
FROM microsoft/dotnet:latest
 
# 创建DockerWebAPI目录
RUN mkdir /usr/local/src/DockerWebApi
 
# 设置工作路径
WORKDIR /usr/local/src/DockerWebApi
 
# 将当前文件夹下的所有文件全部复制到工作目录
COPY *.* ./
 
# 向外界暴露8000端口
EXPOSE 8000
 
# 执行dotnet DockerWebAPI.dll命令
CMD ["dotnet", "DockerWebApi.dll"]

编写完成Dockerfile之后,就可以打包镜像了,命令如下:

docker build -t net_demo:1.0.0 .

启动容器

将上一步打包好的镜像放到服务器的docker内,然后执行以下命令运行容器:

docker run -d -p 80:8000 --name net_demo net_demo:1.0.0

windows 容器方案 windows 容器方案

可以通过 http://101.132.145.15/api/values 访问我的接口


以上所述就是小编给大家介绍的《windows 容器方案》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Agile Web Development with Rails 4

Agile Web Development with Rails 4

Sam Ruby、Dave Thomas、David Heinemeier Hansson / Pragmatic Bookshelf / 2013-10-11 / USD 43.95

Ruby on Rails helps you produce high-quality, beautiful-looking web applications quickly. You concentrate on creating the application, and Rails takes care of the details. Tens of thousands of deve......一起来看看 《Agile Web Development with Rails 4》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

URL 编码/解码
URL 编码/解码

URL 编码/解码

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换