一、docker原理
1、什么是docker:解决了运行环境和配置问题的容器,方便做持续集成并有助于整体发布的容器虚拟化技术。
2、虚拟机的缺点:(1)资源占用多;(2)冗余步骤多;(3)启动慢,分钟级。
3、容器:容器不需要捆绑一整套操作系统,只需要打包软件工作所需的库资源和设置,可以看做是小型的、浓缩版的Linux系统。
4、容器与传统虚拟化技术的区别:
(1)容器启动更便捷:传统虚拟机技术要虚拟出一套硬件,在其上运行一个完整的操作系统,再运行所需的应用进程;而容器内的应用进程直接运行于宿主机的内核,不需要进行硬件虚拟。
(2)容器之间相互隔离:每个容器都有自己的文件系统,容器之间进程不会相互影响,能区分计算资源,耦合度低。
5、仓库:Docker Hub 官网:http://hub.docker.com
6、docker中文网站:https://www.docker-cn.com
二、docker的基本组成:镜像、容器和仓库
1、镜像和容器:
(1)docker镜像(image)就是一个只读的模板,镜像可以用来创建docker容器,一个镜像可以创建多个容器,容器是镜像的运行实例。
(2)镜像和容器的关系类似于面向对象编程中的对象和类:镜像->类,容器->对象。
(3)可以把容器看做是一个简易版的Linux环境和运行在其中的应用程序。
2、仓库和镜像:
(1)仓库是集中存放镜像文件的场所,每个仓库中包含多个镜像(来自阿里云、网易云等)。
(2)仓库分为公开仓库和私有仓库两种。
(3)最大的公开仓库是Docker Hub。
三、docker启动的基本操作命令(基于Ubuntu 18.04)
1、验证docker服务: docker run hello-world
2、查看docker版本:docker version
3、使用国内源镜像加速器:阿里云
(1)进入阿里云网站,用支付宝登录,然后找到容器镜像服务:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors。
(2)设置好仓库的密码。
(3)找到最左下角的 “镜像加速器”:得到加速器地址:"https://vukzv72i.mirror.aliyuncs.com"
(4)在ubuntu命令终端输入:vim /etc/docker/daemon.json。打开后,把加速器地址添加进去。
(5)加速器重新加载:sudo systemctl daemon-reload 。
(6)重启docker:sudo systemctl restart docker。
(7)查看docker进程,检查配置是否生效:ps -ef | grep docker
root : ? :: /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
msg : pts/ :: grep --color=auto docker
四、docker运行的原理
1、docker如何工作:docker是一个client-server结构的系统,docker守护进程运行在主机上,然后通过socket连接从客户端访问,守护进程从客户端接收命令并管理运行在主机上的容器。
2、docker比虚拟机快的原因:docker有着比虚拟机更少的抽象层,运行在docker容器上的程序直接使用实际物理机的硬件资源。docker利用的是宿主机的内核,而不需要重新加载一个操作系统内核。因此docker在CPU、内存利用率上会有明显优势。