本站所有文章均为原创,如对您有帮助,恳请帮忙点击任何一处广告
  • 首页
  • Docker
  • Docker运维教程(1)Docker的基本概念与安装

Docker运维教程(1)Docker的基本概念与安装

发布:TangLu2019-2-20 11:15分类: Docker 标签: docker k8s

一、Docker的作用与原理

Docker容器技术可以理解为软件工业上的集装箱,它可以快速的将不同应用或者不同版本的相同应用打包到一个可移植的容器中实现服务快速部署,减少环境不一致带来的问题,而且每个容器之间相互隔离互不影响,这好比船上有很多集装箱,装水果的集装箱出了问题,但是不影响装酒水的集装箱

但是需要明白的是严格来说Docker并不是容器,它只是容器的一种封装,实现简化管理,底层技术则是Linux内核自带的LXC。Docker的各容器资源占用由CGROUP进行分配管理,相比传统虚拟化来说Docker少了系统层面的开销,不需要为每个容器去虚拟化一个完整的系统,而且即使是下载一个Centos系统镜像也才200M(底层会使用宿主机的内核,也因此容器的内核是无法升级的,必须和宿主机一致)

当然Docker也有一个缺点就是适合应用程序,不适合数据或日志的存储,数据文件一般都通过NFS\MFS等技术挂载到Docker容器之外。Docker之所以能实现资源的隔离是依赖于以下几个Namespace名称空间来完成的:

  UTS:隔离主机名和域名,要求系统内核版本2.6

  IPC:隔离消息队列、共享内存、信号量,要求系统内核版本2.6

  PID:隔离进程编号,要求系统内核版本,要求系统内核版本2.6

  NETWORK:隔离网络设备和端口等,要求系统内核版本2.6

  MOUNT:隔离文件系统与挂载点,要求系统内核版本2.4

  USER:隔离用户和用户组,要求系统内核版本3.8(内核要求3.8,这也是为什么要在Centos 7使用Docker的原因

UTS、NET、IPC这三个名称空间通常是共享给各容器使用,这样可以更方便的实现多容器使用同端口的需求。否则需要DNAT、SNAT两次网络转换才可以。


二、Docker组件构成
docker镜像:可以理解为模板文件,也可以想象成平时装系统用的.iso文件
docker容器:镜像运行之后成为docker容器,就像程序运行后变成进程

docker仓库(registry):镜像存储仓库类似git hub,上面存放了很多做好了的镜像。比如需要LAMP环境,可以去公有仓库里看看有没有合适的镜像,有的话直接下载就可以使用,无需配置。也可以自建仓库,存放适合内部使用的镜像

Docker采用分层构建机制,最底层为bootfs,上层为rootfs。在bootfs中包含了bootloader和kernel,它的作用就是用于引导和启动容器,在容器启动完成后就会卸掉bootfs节约内存,rootfs则是容器的根文件系统。Aufs是Docker最初使用的容器文件系统,而现在最主流的则是overlay2(已经从3.18版本开始被Linux内核合并)、devicemapper(CentOS7早期所使用)。


三、Docker的安装部署与启动:

前面已经提到过要使用Docker的话系统内核要求3.8以上,所以最好使用CentOS 7作为平台目前安装Docker有两种方式:

1、使用系统或第三方YUM仓库中Extras所包含的RPM包,比如https://mirrors.aliyun.com/centos/7/extras/x86_64/Packages/,只不过这里的版本比较旧,还停留在1.13。

2、下载第三方YUM仓库中额外提供的docker-ce仓库文件可以获取较新版本的Docker。在新版本中Docker已经分为了CE和EE两个分支,也就是免费和收费的区别,比如:https://mirrors4.tuna.tsinghua.edu.cn/docker-ce/ linux/centos/。

yum install docker-ce  #安装docker-ce程序,老版本中命名则是docker.io、docker-engine、docker


3、安装结束后先查看Docker版本信息

使用docker version命令查看当前Docker版本号,使用docker info命令可以查看更详细信息,比如启动了多少个容器、默认的仓库地址、下载了多少镜像等,还有上面说到的文件系统,overlay2。如果提示"Is the docker daemon running on this host",说明服务没有启动,如图:

dockerstatus.png

4、启动Docker服务,无需做任何配置

systemctl start docker.service
systemctl enable docker


温馨提示如有转载或引用以上内容之必要,敬请将本文链接作为出处标注,谢谢合作!
et_highlighter51
版权所有:《Linux运维技术学习站点
文章标题:《Docker运维教程(1)Docker的基本概念与安装
除非注明,文章均为 《Linux运维技术学习站点》 原创
转载请注明本文短网址:http://www.linuxe.cn/post-323.html  [生成短网址]

已有 0/2605 人参与

发表评论:

欢迎分享Linux运维技术学习站点

欢迎使用手机扫描访问本站,还可以关注微信哦~