一、首先安装docker(windows) Get Started with Docker | Docker ,根据自己电脑下载
windows系统需要开启Hyper-V ,可以通过下图开启
win10家庭版没有这个,可以新建一个cmd文件进行开启,将下面的代码保存为cmd文件直接运行即可,成功开启后需要重启电脑。
pushd "%~dp0"
dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt
for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"
del hyper-v.txt
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL
重启电脑后,使用docker info 查看一下,如果 提示:
error during connect: Get http://2F2F.2Fpipe2Fdocker_engine/v1.36/containers/json: open//.
这是因为咱用的是windows10家庭版,需要docker切换到linux模式(windows模式需要win10 pro or enterprise build >= 14372)。
解决方案:进入docker的安装目录,使用cmd运行以下命令
DockerCli.exe -SwitchDaemon
二、由于第一次我就直接使用microsoft提供的示例进行操作,文档链接ASP.NET Core 的 Docker 映像 | Microsoft Docs
1.下载microsoft 的示例代码 git clone https://github.com/dotnet/dotnet-docker
2.按文档要求测试运行一下,保证程序可运行。
3.这次我们直接使用手动生成和部署方式,更好理解一点,作为新手这样比较友好吧
首先,根据自己clone的我呢见位置,切换到dotnet-docker\samples\aspnetapp\aspnetapp目录
然后使用 dotnet publish -c Release -o published 发布一下,切换到published目录,在这个目录下新建一个Dockerfile文件,输入如下命令,docker的命令可以以后学习一下
FROM mcr.microsoft.com/dotnet/aspnet:5.0 AS runtime
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "aspnetapp.dll"]
完成后的文件夹是这样的
然后在这个目录打开cmd命令行,生成镜像文件,使用 docker build -t aspnetcorefirst . (注意命令结尾的.)aspnetcorefirst是镜像名称,可以自定义。
在使用 docker images 查看镜像 是否存在
镜像制作完成,来运行一下,使用 docker run -d -p 8000:80 aspnetcorefirst aspnetcorecontainer 命令运行影响,aspnetcorecontainer 是容器名称,可以自定义。 -p 8000:80 表示将当前服务的8000端口映射到容器的80端口。
此时,访问http://localhost:8000,经典的.net core 页面出来了。
由于第一次操作,环境有限,试了不少次才才成功,所以任何项目的落地都需要付出精力啊。
通过这次落地玩转docker我觉的需要了解如下只是
1docker命令
2.dotnet命令
3.docker容器原理