docker学习笔记-01:docker基本原理

一、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     29930     1  0 15:33 ?        00:00:00 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
msg      30634 12938  0 15:40 pts/1    00:00:00 grep --color=auto docker

四、docker运行的原理

1、docker如何工作:docker是一个client-server结构的系统,docker守护进程运行在主机上,然后通过socket连接从客户端访问,守护进程从客户端接收命令并管理运行在主机上的容器。

2、docker比虚拟机快的原因:docker有着比虚拟机更少的抽象层,运行在docker容器上的程序直接使用实际物理机的硬件资源。docker利用的是宿主机的内核,而不需要重新加载一个操作系统内核。因此docker在CPU、内存利用率上会有明显优势。

原文地址:https://www.cnblogs.com/Luv-GEM/p/11473917.html