Docker入门

Docker在Mac上的安装非常简单,而且它的容器既可以用来测试,也可以用来实际生产。

Docker是虚拟机的升级版。装了Docker之后,可以很快地部署各种开源软件。这些软件运行起来不会影响你的主机工作。

第一步 安装

Docker在Mac下的安装已经非常简单了,直接下载Docker Desktop For Mac(链接),拖拽Docker.app就能完成安装。

第二步 启动

你需要每次打开Docker APP才能使用容器、执行命令。在命令行执行下面的命令

$docker pull php7.2-apache

(下载php7.2镜像,这个镜像还包含Apache服务器组件)

$docker run -d –name webserver -p 8080:80 php7.2-apache

(运行php7.2,并将这个运行的容器命名为webserver,并将容器内的80端口映射到当前系统的8080端口)

$docker exec -it webserver /bin/bash

(通过运行容器内部的bash命令,进入容器内部操作;这个操作相当于使用ssh连入vps)

第三步 理解概念

Docker相当于在一个系统内部创建一个独立的沙盘,并以“洋葱皮”的形式存储数据,任何容器的操作都是在沙盘内部发生的。这个概念与虚拟机有所不同,因此我们需要整理一下Docker的概念。

Docker的核心是Docker Engine(引擎),引擎将容器内的命令翻译成当前系统的命令交给CPU执行。这一点和虚拟机是类似的。但是虚拟机为了保证高拟真度,常常会做一些额外的工作,比如,虚拟机软件指令→虚拟CPU指令→虚拟机中间层→虚拟平台软件指令→物理CPU。而Docker可以让容器内的指令直接在物理CPU上运行,效率似乎更高。

说了半天容器,容器究竟是什么呢?容器是根据镜像创建的一个“小王国”,它像虚拟主机,但又不是虚拟主机。你可以给容器打包,打包后,容器便成为了一个新的镜像。

例如:

  1. 你使用下载的PHP镜像创建了一个名为Webserver的容器,此时Webserver所占的空间约等于0kb,也就是不占空间;
  2. 当你接入Webserver,下载了一个50kb探针文件(xprobe.php),那么此时容器Webserver仅占50kb空间;
  3. 然后,你可以选择将Webserver进行打包,使用docker commit命令,将Webserver变成一个新的镜像(一个自带PHP环境的探针),我们暂且称呼这个镜像为“Probe:1.0”(冒号后的数字表示版本号)。那么Probe:1.0则实际上由原始的PHP镜像加上包含探针文件(xprobe.php)的一个“层”构成。如果你公开发布Probe:1.0,其他用户在下载过程中,也会重复这一步骤:先下载安装PHP环境,然后添加新层。

Leave a Reply

Your email address will not be published. Required fields are marked *