一、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、内存利用率上会有明显优势。

docker学习笔记-01:docker基本原理的更多相关文章

  1. DOCKER 学习笔记7 Docker Machine 在阿里云实例化ECS 以及本地Windows 实例化虚拟机实战

    前言 通过以上6小节的学习,已经可以使用DOCKER 熟练的部署应用程序了.大家都可以发现使用 DOCKER 带来的方便之处,因为现在的话,只是在一台服务器上部署,这样部署,我们只需要一条命令,需要的 ...

  2. DOCKER 学习笔记7 Docker Machine 建立虚拟机实战,以及错误总结

    前言 通过以上6小节的学习,已经可以使用DOCKER 熟练的部署应用程序了.大家都可以发现使用 DOCKER 带来的方便之处,因为现在的话,只是在一台服务器上部署,这样部署,我们只需要一条命令,需要的 ...

  3. Docker学习笔记2: Docker 概述

    一.什么是Docker Docker是基于Go语言实现的云开源项目. Docker 的主要目标是:"Bulid,Ship and  Run Any App ,AnyWhere" , ...

  4. Docker学习笔记之Docker的Build 原理

    0x00 概述 使用 Docker 时,最常用的命令无非是 docker container 和 docker image 相关的子命令,当然最初没有管理类命令(或者说分组)的时候,最常使用的命令也无 ...

  5. DOCKER 学习笔记8 Docker Swarm 集群搭建

    前言 在前面的文章中,已经介绍如何在本地通过Docker Machine 创建虚拟Docker 主机,以及也可以在本地Windows 创建虚拟主机,也是可以使用的.这一节,我们将继续学习 Docker ...

  6. Docker学习笔记(1) — docker 常用命令

    1. docker version显示 Docker 版本信息.2. docker info显示 Docker 系统信息,包括镜像和容器数.3. docker searchdocker search ...

  7. Docker学习笔记之docker volume 容器卷的那些事(一)

    预览目录 volume 方式 相关用例 使用方式 使用 volume driver bind mount 方式 相关用例 使用方式 配置selinux标签 配置macOS的安装一致性 tmpfs 方式 ...

  8. Docker学习笔记之Docker应用于服务化开发

    0x00 概述 上一节里我们谈到了小型的独立项目如何使用 Docker Compose 来搭建程序的运行环境,对于由多人或多部门参与的中大型服务化架构的项目,仅由一个 Docker Compose 项 ...

  9. Docker学习笔记之Docker的数据管理和存储

    0x00 概述 数据是应用程序重要的产出,所以很好的管理和存储数据,是对应用程序劳动结果的尊重.特别是在大数据时代,所有的数据都是重要的资产,保护好数据是每个开发者必须掌握的技能.我们知道,在 Doc ...

随机推荐

  1. Python 爬取 热词并进行分类数据分析-[云图制作+数据导入]

    日期:2020.01.28 博客期:136 星期二 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] b.[云图制作+数据导入](本期博客) ...

  2. 项目中常用的全局宏定义#define

    一 关于屏幕大小 #pragma mark - 屏幕宽高 #define SCREEN_BOUNDS ([UIScreen mainScreen].bounds) #define SCREEN_WID ...

  3. New Airless Pump Bottle Technical Features

    Airless Pump Bottle    protect sensitive products such as natural skin creams, serums, foundations a ...

  4. Matlab的简单数据保存读取

    1.使用load进行文件读取 例如读入文件名为'filename.txt'中的数据,那么可以使用以下代码: load('filename.txt') 注意:filename.txt中的数据应符合矩阵形 ...

  5. PAT T1005 Programming Pattern

    建立后缀数组,遍历height数组找到连续大于len的最长子序列~ #include<bits/stdc++.h> using namespace std; ; char s[maxn]; ...

  6. 吴裕雄--天生自然PythonDjangoWeb企业开发:解决ModuleNotFoundError: No module named 'config'报错

    使用创建完模块应用之后python manage.py startapp test_app,您应该进入settings.py并将其注册到

  7. Primecoin服务端更新--操作流程

    Primecoin服务端更新流程:  一.下载更新文件primecoin_x.y.z_xx.zip到/servers目录下:这里是把:版本primecoin0161alpha1更新到:版本primec ...

  8. java 获取web登录者的ip地址

    /** * 获取访问用户的客户端IP(适用于公网与局域网). */ public static final String getIpAddr(final HttpServletRequest requ ...

  9. Linux 下安装 FFmpeg

    1. 下载源代码: git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg 2. 编译 ./configure --enable-shared --pre ...

  10. Tensorflow机器学习入门——网络可视化TensorBoard

    一.在代码中标记要显示的各种量 tensorboard各函数的作用和用法请参考:https://www.cnblogs.com/lyc-seu/p/8647792.html import tensor ...