docker从入门到精通

                                         docker_入门_熟悉_精通_1


    

                                   

1.Docker简介linux

1.1什么是虚拟化?web

在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的
各类实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实
体结构间的不可切割的障碍,使用户能够比本来的组态更好的方式来应用这些资源。这
些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。通常所指的
虚拟化资源包括计算能力和资料存储。
       在实际的生产环境中,虚拟化技术主要用来解决高性能的物理硬件产能过剩和老的
旧的硬件产能太低的重组重用,透明化底层物理硬件,从而最大化的利用物理硬件 对资
源充分利用。
       虚拟化技术种类不少,例如:软件虚拟化、硬件虚拟化、内存虚拟化、网络虚拟化
(vip)、桌面虚拟化、服务虚拟化、虚拟机等等.docker

1.2什么是Docker?数据库

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业
余项目。它基于 Google 公司推出的 Go 语言实现。 项目后来加入了 Linux 基金会,遵
从了 Apache 2.0 协议,项目代码在 GitHub 上进行维护。json

Docker 自开源后受到普遍的关注和讨论,以致于 dotCloud 公司后来都更名为
Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品
中普遍应用。
Docker 项目的目标是实现轻量级的操做系统虚拟化解决方案。 Docker 的基础是
Linux 容器(LXC)等技术。
在 LXC 的基础上 Docker 进行了进一步的封装,让用户不须要去关心容器的管理,
使得操做更为简便。用户操做 Docker 的容器就像操做一个快速轻量级的虚拟机同样简
单。ubuntu

*************************为何选择Docker?
(1)上手快。
用户只须要几分钟,就能够把本身的程序“Docker化”。Docker依赖于“写时复
制”(copy-on-write)模型,使修改应用程序也很是迅速,能够说达到“随心所致,代码
即改”的境界。
随后,就能够建立容器来运行应用程序了。大多数Docker容器只须要不到1秒中即
可启动。因为去除了管理程序的开销,Docker容器拥有很高的性能,同时同一台宿主机
中也能够运行更多的容器,使用户尽量的充分利用系统资源。
(2)职责的逻辑分类centos

使用Docker,开发人员只须要关心容器中运行的应用程序,而运维人员只须要关心
如何管理容器。Docker设计的目的就是要增强开发人员写代码的开发环境与应用程序要
部署的生产环境一致性。从而下降那种“开发时一切正常,确定是运维的问题(测试环境
都是正常的,上线后出了问题就归结为确定是运维的问题)”
(3)快速高效的开发生命周期
Docker的目标之一就是缩短代码从开发、测试到部署、上线运行的周期,让你的应
用程序具有可移植性,易于构建,并易于协做。(通俗一点说,Docker就像一个盒子,
里面能够装不少物件,若是须要这些物件的能够直接将该大盒子拿走,而不须要从该盒
子中一件件的取。)
(4)鼓励使用面向服务的架构
Docker还鼓励面向服务的体系结构和微服务架构。Docker推荐单个容器只运行一个
应用程序或进程,这样就造成了一个分布式的应用程序模型,在这种模型下,应用程序
或者服务均可以表示为一系列内部互联的容器,从而使分布式部署应用程序,扩展或调
试应用程序都变得很是简单,同时也提升了程序的内省性。(固然,能够在一个容器中
运行多个应用程序)服务器

1.3容器与虚拟机比较网络

下面的图片比较了 Docker 和传统虚拟化方式的不一样之处,可见容器是在操做系统层
面上实现虚拟化,直接复用本地主机的操做系统,而传统方式则是在硬件层面实现。架构

如图所示:我们传统的虚拟技术是基于主机进行虚拟出来一个个的操做系统,同时是能够虚拟出不一样的操做系统,这是传统的优势,可是传统的虚拟出来的是直接占用主机的空间的,而咱们使用docker虚拟出来的是跟主机进行空间共享的,于此同时也就决定了使用docker只能虚拟出跟主机同样的操做系统.

与传统的虚拟机相比,Docker优点体现为启动速度快、占用体积小。

1.4Docker组件

1.4.1Docker服务器与客户端

Docker是一个客户端-服务器(C/S)架构程序。Docker客户端只须要向Docker服务
器或者守护进程发出请求,服务器或者守护进程将完成全部工做并返回结果。Docker提
供了一个命令行工具Docker以及一整套RESTful API。你能够在同一台宿主机上运行
Docker守护进程和客户端,也能够从本地的Docker客户端链接到运行在另外一台宿主机上
的远程Docker守护进程。

1.4.2Docker镜像与容器

镜像是构建Docker的基石。用户基于镜像来运行本身的容器。镜像也是Docker生命
周期中的“构建”部分。镜像是基于联合文件系统的一种层式结构,由一系列指令一步一步
构建出来。例如:
添加一个文件;
执行一个命令;
打开一个窗口。
也能够将镜像看成容器的“源代码”。镜像体积很小,很是“便携”,易于分享、存储和更
新。
Docker能够帮助你构建和部署容器,你只须要把本身的应用程序或者服务打包放进
容器便可。容器是基于镜像启动起来的,容器中能够运行一个或多个进程。咱们能够认
为,镜像是Docker生命周期中的构建或者打包阶段,而容器则是启动或者执行阶段。 容
器基于镜像启动,一旦容器启动完成后,咱们就能够登陆到容器中安装本身须要的软件
或者服务。

因此Docker容器就是:
一个镜像格式;
一些列标准操做;
一个执行环境。
Docker借鉴了标准集装箱的概念。标准集装箱将货物运往世界各地,Docker将这个
模型运用到本身的设计中,惟一不一样的是:集装箱运输货物,而Docker运输软件。
和集装箱同样,Docker在执行上述操做时,并不关心容器中到底装了什么,它无论
是web服务器,仍是数据库,或者是应用程序服务器什么的。全部的容器都按照相同的
方式将内容“装载”进去。
Docker也不关心你要把容器运到何方:咱们能够在本身的笔记本中构建容器,上传
到Registry,而后下载到一个物理的或者虚拟的服务器来测试,在把容器部署到具体的主
机中。像标准集装箱同样,Docker容器方便替换,能够叠加,易于分发,而且尽可能通
用。

1.4.3Registry(注册中心)

Docker用Registry来保存用户构建的镜像。Registry分为公共和私有两种。Docker
公司运营公共的Registry叫作Docker Hub。用户能够在Docker Hub注册帐号,分享并保
存本身的镜像(说明:在Docker Hub下载镜像巨慢,能够本身构建私有的Registry)。
https://hub.docker.com/

2.Docker安装与启动

2.1安装Docker

Docker官方建议在Ubuntu中安装,由于Docker是基于Ubuntu发布的,并且通常
Docker出现的问题Ubuntu是最早更新或者打补丁的。在不少版本的CentOS中是不支持
更新最新的一些补丁包的。
        注意:这里建议安装在CentOS7.x以上的版本,在CentOS6.x的版本中,安装前须要
安装其余不少的环境并且Docker不少补丁不支持更新。

(1)yum 包更新到最新
sudo yum update
(2)安装须要的软件包, yum-util 提供yum-config-manager功能,另外两个是
devicemapper驱动依赖的
sudo yum install ‐y yum‐utils device‐mapper‐persistent‐data lvm2
(3)设置yum源为阿里云
sudo yum‐config‐manager ‐‐add‐repo http://mirrors.aliyun.com/docker‐
ce/linux/centos/docker‐ce.repo
(4)安装docker
sudo yum install docker‐ce
(5)安装后查看docker版本
docker ‐v

2.2设置ustc的镜像

ustc是老牌的linux镜像服务提供者了,还在遥远的ubuntu 5.04版本的时候就在用。ustc
的docker镜像加速器速度很快。ustc docker mirror的优点之一就是不须要注册,是真正
的公共服务。
https://lug.ustc.edu.cn/wiki/mirrors/help/docker
编辑该文件:
vi /etc/docker/daemon.json
在该文件中输入以下内容:
{
"registry‐mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}

2.3Docker的启动与中止

systemctl命令是系统服务管理器指令 启动docker: systemctl start docker 中止docker: systemctl stop docker 重启docker: systemctl restart docker 查看docker状态: systemctl status docker 开机启动: systemctl enable docker 查看docker概要信息 docker info 查看docker帮助文档 docker ‐‐help