我怎样才能在Windows上Docker我的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,build 60ccb22
PS C:\Users\Docker> docker-compose --version
-
docker-compose版本1.11.2,build dfed245
你的问题不是很具体,但似乎你正在试图容纳一个asp.net的网络应用程序,这是一个基本的线索,你想通过使用docker来完成。
Docker是一个Linux容器系统,意味着它基于Linux内核,并通过在Windows中安装docker来安装一个linux客户机来构建你的容器,你将自定义你的容器来转发从容器内部为你的应用程序开发提供服务的端口,你的主机,所以基本上这是怎么回事? 在安装docker之后,第一个docker需要一个基本映像(linux映像)来运行你的容器,所以找一个docker映像的好地方是docker hub ,所以你也需要一个基本场景:
1)拉一个图像。
2)根据这个图像运行一个容器。
为了完成第一步 :我们将使用微软的dotnet官方码头集线器为例。
docker pull microsoft/aspnetcore
docker pull:将会从docker hub中取出dotnet:latest
图片:latest
是一个标签,指定dotnet的最新稳定版本,意思是如果你需要另一个运行时版本,你将使用docker pull dotnet:runtime
从上面的dotnet官方docker hub链接你将在Supported tags
下找到Supported tags
要完成第二个步骤,我们需要使用这个图像来运行一个容器。
docker run -d -p 8000:80 --name firstwebapptest microsoft/aspnetcore
码头运行:将创建一个容器名称firstwebapptest
基于microsoft/aspnetcore
转发容器端口80
到主机端口8000
,所有这些将作为分离模式运行-d
现在检查你的浏览器localhost:8000
这是使用docker命令行工具的一个非常基本的场景。 因此,另一种完成这种情况的方法是使用dockerfile,你会发现How to use this image
在microsoft dotnet官方docker hub链接中How to use this image
,它假定你已经在你的app目录中包含你编译好的myapp.dll。 你会做什么是在这个目录中创建一个名为dockerfile
的文件,并写在里面:
FROM microsoft/aspnetcore WORKDIR /app COPY . . ENTRYPOINT ["dotnet", "myapp.dll"]
FROM:我们已经拉出的基础图像
WORKDIR:这将是linux容器内的目录
COPY:。 . .
第一.
第二个是在容器内复制你的主机目录内容.
在这种情况下,你的guest目录是/app
ENTREYPOINT:在这个容器启动并运行的情况下运行的linux命令dotnet myapp.dll
意味着你正在运行WORKDIR
/app
的linux容器的命令dotnet
,其中包含你编译的所有主机目录应用程序结构myapp.dll.
我们已经复制它COPY . .
COPY . .
所以现在我们有dockerfile所有我们需要的是建立和运行它。
docker build -t secondwebapptest . docker run -d -p 8001:80 secondwebapptest
-t secondwebapptest
build:将建立一个名为-t secondwebapptest
的容器.
点指的是你刚建立的dockerfile,你已经在工作目录中,否则你必须使用-f
指定docker文件的路径,但这不是我们的情况。
docker run:将运行已经创建的名为secondwebapptest
的容器,该容器基于将容器端口80
转发到主机端口8001
并且所有这些将作为分离模式-d
运行。
现在检查你的浏览器localhost:8001