.NetCore Docker test
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
Docker 从 17.03 版本之后分为 CE(Community Edition: 社区版) 和 EE(Enterprise Edition: 企业版),我们用社区版就可以了。
谁适合阅读本教程?
本教程适合运维工程师及后端开发人员,通过本教程你可以一步一步了解 Docker 的使用。
阅读本教程前,您需要了解的知识
在阅读本教程前,你需要掌握 Linux 的常用命令。你可以通过本站的 Linux 教程 来学习相关命令。
Docker的应用场景
-
Web 应用的自动化打包和发布。
-
自动化测试和持续集成、发布。
-
在服务型环境中部署和调整数据库或其他的后台应用。
-
从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
下载 https://www.docker.com/get-started 有个下载 Docker Desktop:https://download.docker.com/win/stable/Docker%20Desktop%20Installer.exe
它是 Developer productivity tools and a local Kubernetes environment.
安装好后个根据它的初级教程拉取个getting-started 的repository 来run下,类似 hello world。
VS2019 新建个 NET Core的Web API 项目 勾选上选择 “启用Docker支持”,是为了生存DockerFile文件---就是为了后面运行或者debug的时候链接到你安装的本地Docker去。
这个文件内容大概是:
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging. FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base WORKDIR /app EXPOSE 80 EXPOSE 443 FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build WORKDIR /src COPY ["MMPicStore/MMPicStore.csproj", "MMPicStore/"] RUN dotnet restore "MMPicStore/MMPicStore.csproj" COPY . . WORKDIR "/src/MMPicStore" RUN dotnet build "MMPicStore.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "MMPicStore.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "MMPicStore.dll"]
以上里面的内容解释就忽略了,网上百度到处是。
回到VS2019创建的Web Api项目,debug 工具栏多了个docker。点击运行,这样就链接上你安装的docker了。你这个时候在你安装的Docker Desktop 界面程序里看到运行起来你这个项目。-可以停止 程序启动等。
和GitLib一样它有个线上仓库网站 给开发者创建和分享直接的镜像文件-Repository Image.
注册好了账号 就可以创建自己的厂库。你可将刚才创建的这项目发布到上面去。
就是点击VS2019里的发布-Publish,选择Docker Hub,VS会提示输入Hub的账号密码。完成输入点击发布(有点慢)。OK 在https://hub.docker.com/ 上自己的仓库里看见了发布的这个项目了。