1.什么是docker?

Docker 利用 Linux 核心中的资源分脱机制,例如 cgroups ,以及 Linux 核心名字空间,来创建独立的软件容器。这可以在单一 Linux 实体下运作,避免启动一个虚拟机造成的额外负担。Linux 核心对名字空间的支持完全隔离了工作环境中应用程序的视野,包括进程树、网络、用户 ID 与挂载文件系统,而核心的 cgroup 提供资源隔离,包括 CPU 、存储器、block I/O 与网络。

Dockers 是有能力打包应用程序及其虚拟容器,可以在任何 Linux 服务器上运行的依赖性工具,这有助于实现灵活性和便携性,应用程序在任何地方都可以运行,无论是公有云、私有云、单机等。

docker 解决了哪些痛点:

1.简化环境管理

传统的软件开发与发布环境复杂,配置繁琐,经常有读者在微信上问:我的代码开发环境可以运行,一旦部署到服务器上就运行不了了。这个问题很常见,也确实很烦人,但是问题总要解决,开发环境、测试环境、生产环境,每个环节都有可能出现这样那样的问题,如果能够在各个环境中实现一键部署,就会方便很多,例如一键安装 linux 、一键安装 mysql、一键安装 nginx 等,docker 彻底解决了这个问题。

2.虚拟化更加轻量级

说到容器,说到虚拟化,很多人总会想到虚拟机,想到 VMware、VirtualBox 等工具,不同于这些虚拟技术,docker 虚拟化更加轻量级,传统的虚拟机都是先虚拟出一个操作系统,然后在操作系统上完成各种各样的配置,这样并不能充分的利用物理机的性能,docker 则是一种操作系统级别的虚拟技术,它运行在操作系统之上的用户空间,所有的容器都共用一个系统内核甚至公共库,容器引擎提供了进程级别的隔离,让每个容器都像运行在单独的系统之上,但是又能够共享很多底层资源。因此 docker 更为轻量、快速和易于管理。

这里笔者借用一张图片对比一下docker和虚拟机之间的区别:

2.docker环境搭建

笔者电脑的系统为Win10教育版,而docker需要Win10专业版,因此需要转换一下系统的版本,这里借鉴一下网上的经验,如果您的电脑已经是win10专业版,请跳过此步:

打开windows powershell,依次执行以下的指令:

slmgr /ipk W269N-WFGWX-YVC9B-4J6C9-T83GX
slmgr /skms zh.us.to
slmgr /ato

检查是否成功可以看一下:

ok,系统的问题解决了,下面的一个问题就是确认Hyper-V是否打开,一般win10专业版是打开了的,但是由于笔者是转换的,这里再去确认一下:打开控制面板->程序与功能->启用或关闭Windows功能。

选中Hyper-V后,确定后重启即可。 

3.下载并安装docker

最新版 Toolbox 下载地址: https://www.docker.com/get-docker。点击 Download Desktop and Take a Tutorial,并下载 Windows 的版本:

如果你还没有登录,会要求注册登录: 

有时官网会有点慢,可以在http://get.daocloud.io/#install-docker-for-mac-windows,下载安装包:

这里,注意,不是仅仅win10才可以安装docker,如果您的系统是版本过旧,可以使用 Docker Toolbox 在Windows或者Mac上运行Docker。适用于Mac OS X 10.8+ 或者 Windows 7/8.1。

 4.运行hello world

此时,输入测试命令:

docker run hello-world

 笔者在第一次尝试时,出现过下面的错误:

net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

原因是国内下载官方镜像点提供的镜像时,速度缓慢,超时。使用加速器就可以解决这个问题。

{
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn"
  ],
  "insecure-registries": []
}

提示:开启hyper-v之后,系统启用了虚拟化层,所以物理机OS和虚机OS处于平级,因此,物理机可能会变慢很多。这时,你在任务管理器里看到的CPU使用率不过是物理机OS这台“虚机”自己的负载,如果想了解真实物理主机全部的CPU负载使用率,需要用性能监视器来看,找到hyper-v logical processor这个计数器里,然后选择total run time即可。

dorcker官方网站: https://docs.docker.com/get-started/

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐