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 : ? :: /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基本原理的更多相关文章
- DOCKER 学习笔记7 Docker Machine 在阿里云实例化ECS 以及本地Windows 实例化虚拟机实战
前言 通过以上6小节的学习,已经可以使用DOCKER 熟练的部署应用程序了.大家都可以发现使用 DOCKER 带来的方便之处,因为现在的话,只是在一台服务器上部署,这样部署,我们只需要一条命令,需要的 ...
- DOCKER 学习笔记7 Docker Machine 建立虚拟机实战,以及错误总结
前言 通过以上6小节的学习,已经可以使用DOCKER 熟练的部署应用程序了.大家都可以发现使用 DOCKER 带来的方便之处,因为现在的话,只是在一台服务器上部署,这样部署,我们只需要一条命令,需要的 ...
- Docker学习笔记2: Docker 概述
一.什么是Docker Docker是基于Go语言实现的云开源项目. Docker 的主要目标是:"Bulid,Ship and Run Any App ,AnyWhere" , ...
- Docker学习笔记之Docker的Build 原理
0x00 概述 使用 Docker 时,最常用的命令无非是 docker container 和 docker image 相关的子命令,当然最初没有管理类命令(或者说分组)的时候,最常使用的命令也无 ...
- DOCKER 学习笔记8 Docker Swarm 集群搭建
前言 在前面的文章中,已经介绍如何在本地通过Docker Machine 创建虚拟Docker 主机,以及也可以在本地Windows 创建虚拟主机,也是可以使用的.这一节,我们将继续学习 Docker ...
- Docker学习笔记(1) — docker 常用命令
1. docker version显示 Docker 版本信息.2. docker info显示 Docker 系统信息,包括镜像和容器数.3. docker searchdocker search ...
- Docker学习笔记之docker volume 容器卷的那些事(一)
预览目录 volume 方式 相关用例 使用方式 使用 volume driver bind mount 方式 相关用例 使用方式 配置selinux标签 配置macOS的安装一致性 tmpfs 方式 ...
- Docker学习笔记之Docker应用于服务化开发
0x00 概述 上一节里我们谈到了小型的独立项目如何使用 Docker Compose 来搭建程序的运行环境,对于由多人或多部门参与的中大型服务化架构的项目,仅由一个 Docker Compose 项 ...
- Docker学习笔记之Docker的数据管理和存储
0x00 概述 数据是应用程序重要的产出,所以很好的管理和存储数据,是对应用程序劳动结果的尊重.特别是在大数据时代,所有的数据都是重要的资产,保护好数据是每个开发者必须掌握的技能.我们知道,在 Doc ...
随机推荐
- idea设置代码提示忽略大小写
- Python学习第十八课——继承,接口继承等
1.继承:字面意思 # 继承 : 字面意思 class father: pass class grandfather: pass class children(father): # 单继承 pass ...
- Spark入门:第4节 Spark程序:1 - 9
五. Spark角色介绍 Spark是基于内存计算的大数据并行计算框架.因为其基于内存计算,比Hadoop中MapReduce计算框架具有更高的实时性,同时保证了高效容错性和可伸缩性.从2009年诞生 ...
- Codeforces Round #586 (Div. 1 + Div. 2)E(拓扑排序,思维)
#include<bits/stdc++.h>using namespace std;int n,m,s; vector<int>edge[200007];queue<i ...
- [经验] Java 使用 netty 框架, 向 Unity 客户端的 C# 实现通信 [1]
这是一个较为立体的思路吧 首先是技术选型: 前端 : HTML5 + jQuery ,简单暴力, 不解释 服务端 : Spring Boot + Netty + Redis/Cache 客户端 ...
- lib文件和dll文件
一. 简介 1.1 C++两种库文件 lib包含了函数所在的dll文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的dll提供,称为动态链接库dynamic link library. ...
- Centos7 nginx的目录结构与nginx主配置文件解析
一.nginx的目录结构 [root@node nginx_116]# ls client_body_temp conf fastcgi_temp html logs proxy_temp ...
- UniGui安装(01)
UniGui安装.Delphi10和uniGUI1.90.0.1509 1]下载 2]安装 3]目录说明 1]下载 在我百度网盘里 uniGUI1-90-0-1509.zip https://pan ...
- vbs操作IE对象
Dim fso,filepath,i 'Dim ExcelBook,ExcelSheet,MyExcelBook,MyExcelSheet Dim ie Set ie=WScript.CreateOb ...
- 图层CALayer的使用
1.图层的意义 当UIView需要显示到屏幕上时,会调用drawRect:方法进行绘图,并且会将所有内容绘制在自己的图层上,绘制完毕后,系统会将图层拷贝到屏幕上,于是就完成了UIView的显示. ...