本文为霍格沃兹测试学院学院学员 Docker 实战课程学习笔记,供各位同学参考。
在 Dokcer 横空出世之前,应用打包一直是大部分研发团队的痛点。在工作中,面对多种服务,多个服务器,以及多种环境,如果还继续用传统的方式打包部署,会浪费大量时间精力。
万物和鸣的 Docker
在 Docker 出现后,它以更高效的利用系统资源、更高效的利用系统资源、一致的运行环境、持续交付和部署、更轻松的迁移、更轻松的维护和拓展,6 大优点迅速火了起来。
Docker 的基础命令,堪称 Docker 的内功,只有把内功修炼好了,我们在 Docker 的学习路上才会更加顺畅,不会导致“走火入魔”。
接下来我将从与虚拟机的对比开始,以实战的方式,带大家更加了解,更会“玩” Docker。
Docker 和虚拟机
– 左边为虚拟机,右边为docker环境 –
Server:物理机服务器
Host OS:构建的操作系统
Hypervisor:一种虚拟机软件,装了之后才能虚拟化操作系统
Guest OS:虚拟化的操作系统
Bins/Libs:执行命令、工具
App A:构建的软件
Docker Engine:跳过虚拟化内核的步骤,直接使用宿主机内核
从图片中我们可以清楚的了解到,相比于 Docker,虚拟机更加的臃肿。
虚拟机和容器都需要物理机以及操作系统,但是虚拟机有 Hypervisor 层以及 Guest OS 层。但是 Docker 是没有这两个部分的,只有一层 Docker Engine。
并且每个容器都和宿主机共享计算机的硬件资源以及操作系统。那么由Hypervisor带来的资源耗损,在容器这边是不存在的。所以Docker与虚拟机对比,是有很强大的优势的,当然,也会有一定的缺点。
优势(省去了虚拟化内核的步骤)
-
节省资源(CPU、内存)
-
秒级启动
-
轻量级方案(同样一台服务器可以启动几百个docker,但是不能启动几百个虚拟机)
劣势
-
隔离性、安全性相比虚拟机更弱(比如,如果其中一个容器将内核给"搞坏了",那所有的容器就都无法正常工作了)
-
某些情况下服务器会挑内核(eg.编译c++)
Docker的作用
而对于测试人员,Docker又为我们带来了什么样的便利呢?
-
搭建测试环境
-
搭建各类基础服务
-
搭建测试执行环境(自动化测试脚本执行环境)
加速器配置
在刚开始的时候,由于网络的原因,我们在下载的镜像的时候,常常速度是非常慢的。所以如果下载镜像很慢的同学,可以尝试配置国内的加速器加速镜像下载
-
登录阿里开发者平台:
https://dev.aliyun.com/search.html -
点击“创建我的容器镜像”
-
注册/登录后,进入Docker 镜像仓库,选中加速器 Tab
https://cr.console.aliyun.com/#/imageList -
根据个人需要, 选择运行Docker 的OS,按照要求修改Docker配置文件。
步骤如下:
修改配置文件 :
vim usr/lib/systemd/system/docker.service
添加红色部分到</