如何在windows上Dockerize我的web api

如何在windows上Dockerize我的web api,windows,docker,asp.net-web-api,Windows,Docker,Asp.net Web Api,Docker是用于创建容器化应用程序的完整开发平台,Docker for Windows是在Windows系统上使用Docker的最佳方式 启动您喜爱的shell(cmd.exe、PowerShell或其他),检查docker和docker compose的版本,并验证安装 PS C:\Users\Docker>Docker--version Docker版本17.03.0-ce,版本60ccb22 PS C:\Users\Docker>Docker compose--version dock

Docker是用于创建容器化应用程序的完整开发平台,Docker for Windows是在Windows系统上使用Docker的最佳方式

  • 启动您喜爱的shell(cmd.exe、PowerShell或其他),检查docker和docker compose的版本,并验证安装

    PS C:\Users\Docker>Docker--version

  • Docker版本17.03.0-ce,版本60ccb22

    PS C:\Users\Docker>Docker compose--version

  • docker compose版本1.11.2,构建dfed245


您的问题不是很具体,但似乎您正在尝试将asp.net web应用程序容器化,以下是您希望通过使用docker实现的基本线索

Docker是一个linux容器系统,这意味着它基于linux内核,通过在windows中安装Docker,您将安装一台linux来宾计算机来构建您的容器,并且您将自定义您的容器以转发端口,这些端口将服务于您的应用程序开发,从容器内部到主机,那么基本上这将如何发生?安装docker后,第一个docker需要一个基本映像(linux映像)来运行您的容器,因此查找docker映像的好地方是,对于您需要的基本场景也是:

1) 拉一个图像

2) 基于此图像运行容器

docker run -d -p 8000:80 --name firstwebapptest microsoft/aspnetcore
要实现第1个目标,我们将使用以下示例

docker pull microsoft/aspnetcore
docker pull:将从docker hub中拉出
dotnet:latest
图像,
:latest
是一个标签指定dotnet的最新稳定版本意味着如果您想要另一个运行时版本,您将使用
docker pull dotnet:runtime
从上述dotnet官方docker hub链接中,您将在
支持的标签下找到标签

要完成第2步:我们需要使用此图像运行容器

docker run -d -p 8000:80 --name firstwebapptest microsoft/aspnetcore
docker run:将基于
microsoft/aspnetcore
创建一个容器名
firstwebapptest
,将容器端口
80
转发到主机端口
8000
,所有这些都将作为分离模式
-d

现在检查您的浏览器
localhost:8000

这是一个使用docker命令行工具的非常基本的场景。 因此,实现此场景的另一种方法是使用dockerfile,您将在microsoft dotnet官方docker hub链接中找到
如何使用此图像
,它假定您已经在包含已编译myapp.dll的应用程序目录中。您要做的是在此目录中创建一个名为
dockerfile
的文件,并将其写入:

FROM microsoft/aspnetcore
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "myapp.dll"]
来源:我们已经提取的基础图像

WORKDIR:这将是linux容器中的目录

复制:
第一个
是在容器中复制主机目录内容,第二个
是您的来宾目录,在这种情况下将是
/app

ENTREYPOINT:此容器启动并运行后将运行的linux命令,在这种情况下,
dotnet myapp.dll
意味着您正在从
WORKDIR
/app
中的linux容器中运行该命令,其中包含已编译的
myapp.dll.
我们已经复制了它
COPY

现在我们有了dockerfile,我们需要的就是构建和运行它

docker build -t secondwebapptest .
docker run -d -p 8001:80 secondwebapptest
docker build:将从
构建一个名为
-t secondwebapptest
的容器。dot指的是您刚刚构建的docker文件,并且您已经在工作目录中,否则您必须使用
-f
指定docker文件的路径,但这不是我们的情况

docker run:基于将容器端口
80
转发到主机端口
8001
,将运行已创建的名为
secondwebapptest
的容器,所有这些将以分离模式
-d
运行

现在检查您的浏览器
localhost:8001