docker简介
参考文章:https://www.cnblogs.com/codelove/p/10030439.html
Docker 是一个开源的应用容器引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。
开发者在本地编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。
简单的理解,Docker类似于集装箱,各式各样的货物,经过集装箱的标准化进行托管,而集装箱和集装箱之间没有影响。
也就是说,Docker平台就是一个软件集装箱化平台,这就意味着我们自己可以构建应用程序,
将其依赖关系一起打包到一个容器中,然后这容器就很容易运送到其他的机器上进行运行,而且非常易于装载、复制、移除,非常适合软件弹性架构。
docker和虚拟机的区别:
如上图所示,由于容器所需的资源要少得多(例如,它们不需要一个完整的 OS),所以它们易于部署且可快速启动。
这使你能够具有更高的密度,也就是说,这允许你在同一硬件单元上运行更多服务,从而降低了成本。
在同一内核上运行的副作用是,你获得的隔离比 VM 要少。
镜像的主要目标是使环境(依赖项)在不同的部署中保持不变。
也就是说,可以在计算机上调试它,然后将其部署到保证具有相同环境的另一台计算机上。
借助容器镜像,可打包应用或服务并采用可靠且可重现的方式对其进行部署。可以说 Docker 不只是一种技术,还是一种原理和过程。
Docker的安装(win11)
- 下载桌面Docker(有可能需要梯子)
- 如果系统是win11 X64专业版需要下载WSL2 ,如果使用的是 ARM64 计算机,请下载 ARM64 包。 如果不确定自己计算机的类型,请打开命令提示符或 PowerShell,并输入:systeminfo | find “System Type”。
- 在控制面板里勾选Hyper-V和容器(这时候可能需要重启,可以先别重启,等完全配置完成后一起重启)
-
对WSL2也启用虚拟化支持,使用管理员权限打开PowerShell,输入如下命令:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
-
打开 PowerShell,然后在安装新的 Linux 发行版时运行(
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
)命令,将 WSL 2 设置为默认版本:PowerShell。设置并安装WSL2 -
使用管理员权限打开PowerShell,输入如下命令:
wsl --set-default-version 2
- 运行docker安装程序
docker初始化可能会遇到的两个问题:
报错1:Docker Desktop requires a newer WSL kernel version.
解决:
管理员身份打开cmd控制面板,并按照一下操作:
报错2:Docker Desktop - Unexpected wSL error:An unexpected error was encountered while executing a WSL command.Commoncauses include access rights issues, which occur after waking the computer or notbeing connected to your domain/active directory.
解决
管理员身份打开命令行工具:
netsh winsock reset
就可以重新打开docker,如果不成功,再重启电脑就好了。可以就不用重启了。
看到这个界面就代表docker安装成功了,接下来就是学习如何使用
Docker与.Net Core
ASP.NET Core是一个跨平台的高性能开源框架,用于生成基于云且连接 Internet 的新式应用程序。使用 ASP.NET Core,我们可以:
- 建置 Web 应用程序和服务、IoT 应用和移动后端。
- 能够在 Windows、macOS 和 Linux 上进行开发和运行。部署到云或本地。
- 在 .NET Core 或 .NET Framework 上运行。
- 能够在 IIS、Nginx、Apache、Docker 上进行托管或在自己的进程中进行自托管我们的应用。
性能是.NET Core的一个关键特性,这里有必要介绍下。
查看详情:https://www.cnblogs.com/savorboard/archive/2016/10/17/dotnet-benchmarks.html
.NET Core天生就为跨平台设计,并且和Docker搭配非常友好,而且微软官方在这块提供了很多支持。
。ASP.NET Core的官方镜像名称为microsoft/aspnetcore,
微软针对Docker上的 ASP.NET Core 应用进行了优化,因此容器可以更快启动。