Docker在Windows的使用说明
Docker在早期是只专注于Linux虚拟化实现的一种容器技术,因为Linux得天独厚的Namespace 和 CGroup 等系统内隔离机制特性,使得在Linux更易实现,在经过容器技术的疯狂发展推崇之后,微软看到了这一红利,在于2014年宣布与Docker公司合作,将容器技术迁移到Windows上,这一动作让Windows改变了过去,只能通过VM等大型虚拟机软件通过装Linux来装Docker的现状,现在也可以很轻量级的将Docker融入系统中使用了。由于Windows系统和Linux在实现上还是有些差别,尽管我们在Docker上的操作大致相同,仍然需要注意一些事项,下面,我将使用经验列举如下。
系统要求
Windows系统每一个版本的发行都对应众多不同级别的版本,如家庭版,专业版,教育部,企业版,旗舰版等,每个版本都有属于自己的特性,当然越高级越齐全。根据Docker官网介绍,系统要求如下:
系统要求:
- Windows10 64位:专业版,企业版或者教育版本(1607周年更新,Build 14393或更高版本)
- 在BIOS中开启虚拟化支持,在Windows中开启高级功能 Hyper-V
- CPU必须支持虚拟化
- 至少4GB的运行内存
运行原理
Docker在Windows系统上安装时,Docker会创建一个基于Linux的虚拟机,叫做MobyLinuxVM虚拟机,这个虚拟机是基于Alpine Linux的。Docker应用程序会连接到此虚拟机,你便可以开始创建具有必要操作组件的容器了。为了与本地网络和NAT(网络地址转换)进行通信,在Docker安装中会为虚拟机配置一个子网,以便你的容器在应用程序中使用。不过不必担心,MobyLinuxVM虚拟机是运行在Hyper-V,这是Windows是一项虚拟化技术,相比虚拟机之类的非常轻量级,容器可以共享主机内核,任务管理器里面可以看到对应进程。
安装教程
确保你已经按照上面的 “系统要求” 完成了必备条件,如果你无法满足,你可以尝试使用虚拟机在Windows安装Linux系统来运行,不过这是不被推荐的,意味着你将牺牲更大的硬件资源和更麻烦的操作。
安装教程很简单,下载 Docker Desktop for Windows软件套件即可。
点我直达 Windows中安装Docker官网教程
客户端配置
安装完 Docker Desktop for Windows后,启动,我们在左侧会看到菜单选项,下面将介绍一些注意事项。
General 通用设置
注意配置开机自启,自动更新,是否发送统计数据,开启守护进程远程管理服务
根据你个人意愿开启,没什么特别好说的。
Shared Drives 共享磁盘
启用哪个磁盘驱动,以便你可以在docker run 命令使用 -v选项 进行 磁盘挂载,实现宿主机和你容器数据共享。
例如我勾选了E盘,那么就可以这样使用:
docker run -it -v E:\docker-data:/data debian /bin/bash
Advanced 高级设置
配置Docker使用的系统资源,一般默认即可,如果你需求比较大根据你的实际硬件资源调整
注意的是 选项 Disk image location 磁盘镜像路径,默认是C盘,考虑到后期镜像特别多特别大,占用很大C盘空间,应该更换到其他磁盘路径。
Network 网络
一般默认即可
Proxies 代理
主要是在拉取镜像可以使用代理加速,这里我们改用镜像配置,在下文说明
Daemon 守护进程
主要更改 Registry mirrors 镜像服务地址,因为默认的镜像仓库在美国,中国大陆拉取镜像非常缓慢,可以使用国内镜像加速。常见的加速服务提供商有,网易的镜像中心,daocloud镜像市场,阿里云镜像加速。大家可以根据喜欢,自己选择。
数据共享
在使用共享磁盘驱动后,我们可以通过挂载磁盘到指定的容器中,确实很方便,但是有时候我们需要创建数据卷,使用容器之间数据互通,在Windows上会有个不便之处。通过使用 docker volume create share-data 命令创建数据卷,然后用 docker volume inspece share-data 查看数据卷,发现该数据卷的路径地址是:
/var/lib/docker/volumes/share-data/_data
该命令明显是一个Linux路径,那我们在宿主机上如何访问呢?
根据上文的 运行原理 我们知道,Docker其实运行在一个虚拟机的Linux系统上,这个虚拟机是无法被外界直接访问的,所有其实在Windows是不太推荐使用共享卷的,可以考虑使用 -v选项使用磁盘挂载。那如果你实在想使用数据卷,而且想查看里面的文件,怎么做比较好呢,一个取巧的办法,将该目录挂载到一个容器中
docker run -it -v /var/lib/docker/volumes/share-data/_data:/data debian /bin/bash
这样你在这个新的容器中的/data目录下就可以看到数据卷的文件了,当然我们还可以使用 磁盘共享再挂载一个目录在该容器中 如 share ,那么我们就可以拷贝文件到share目录下,就会磁盘共享中看到,这样也就可以直接宿主机查看了。
容器选择
在Windows上Docker提供了两种不同的容器环境选择,Linux容器(默认)和Windows容器,需要注意的是,大部分场景下选择Linux容器就可以了。那什么时候选择Windows容器呢?
由于Linux和Windows是两套不同的操作系统,二者是不能运行各自的软件的,所以如果你的应用程序考虑只在某个特定平台下运行,你就选择对应的。实际上Linux容器目前来说应该是更加成熟,稳定,推荐使用。