Docker的基础概念
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
有如下应用场景:
-
Web 应用的自动化打包和发布。
-
自动化测试和持续集成、发布。
-
在服务型环境中部署和调整数据库或其他的后台应用。
-
从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境。
container(容器)和image(镜像)
简单解释一下docker 容器和镜像的概念,容器是由镜像实例化而来,类比我们学习过的面向对象的概念,镜像就是程序中定义的类,而容器是类实例化后的对象。
镜像是容器运行时的文件系统和参数,由于容器本身是镜像的实例,镜像本身也没有状态,所有镜像一直都不会被改变。每个容器都与自己的专用文件系统进行交互,彼此之间相互隔离。
仓库(Repository)
仓库可看成一个代码控制中心,用来保存不同版本的镜像。不同的版本通过tag标签来区分。
window10下安装docker
点击下载地址进入下载页,然后下载安装程序进行安装。
安装前会让我们勾选选项我们就默认就好了,如下图:
然后安装完成后重启,docker desktop会自动启动,会报错如下:
这是因为我们安装Docker Desktop的时候,他会问我们是否需要使用WSL2(基于Windows的Linux子系统),如果我们不适用,就会使用Hyper-v虚拟机运行,不过相比于虚拟机,子系统在性能方面更加出色。在我们选择使用WSL2之后,并且我们也确定打开了如下图所示的Windows功能。
解决问题的方法就是安装wsl2(点击提示上的链接有详细的解决方法),如下:
1.以管理员身份打开PowerShell并运行:dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
2.在安装WSL 2之前,必须启用虚拟机平台可选功能。运行:dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
3.下载Linux内核更新程序包,因为我电脑是x64的所以下载x64位的安装包,点击下载。之后在PowerShell中运行:wsl --set-default-version 2,将WSL 2设置为默认版本
最后重启一下电脑,就可以启动docker desktop啦。