Docker知识点总结

虚拟化技术无疑是云计算的核心技术,而容器虚拟化方案,更是充分利用了操作系统已有的机制和特性,可以实现轻量级的虚拟化。Docker无疑是其中的佼佼者。

一.Docker的核心概念
1.镜像(Image)
可以将它理解为一个面向Docker引擎的只读模板,包含了文件系统。


2.容器(Container)
容器是镜像的一个运行实例。Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。容器是从镜像创建的应用运行实例,这些容器都是相互隔离的。镜像自身是只读的,容器从镜像启动的时候,Docker会在镜像的最上层创建一个可写层,镜像本身将保持不变。

3.仓库(Repository)
Docker仓库类似于代码仓库,是Docker集中存放镜像文件的场所。


二.Docker核心技术
Docker引擎的基础是Linux容器(Linux Containers, LXC)技术。从操作系统功能上看,Docker底层依赖的核心技术主要包括以下几部分:
1.命名空间(Namespaces)
每个容器都可以拥有自己单独的命名空间,运行在其中的应用都像是在独立的操作系统中运行一样。命名空间保证了容器之间彼此互不影响。在操作系统中,所有资源都是进程共享的。要实现虚拟化,除了要实现对内存、CPU、网络IO、硬盘IO、存储空间等的限制外,还要实现文件系统、网络、PID、IPC等的相互隔离。随着Linux系统对于命名空间功能的逐步完善,已经实现了这些需求,让进程在彼此隔离的命名空间中运行。

2.控制组(Control Groups)
控制组(CGroups)是Linux内核的一个特性,主要用来对共享资源进行隔离、限制、审计等,可以提供对容器的内存、CPU、磁盘IO等资源进行限制。对Docker来说控制组最重要的功能是根据组的命名空间执行组之间进程、网络连接、文件系统等资源的隔离。

3.联合文件系统(Union File Systems)
联合文件系统(UnionFS)是一种轻量级的高性能分层文件系统,它支持将文件系统中的修改信息作为一次提交,并层层叠加。联合文件系统是实现Docker镜像的技术基础。

4.虚拟网络支持
Docker的网络实现是利用了Linux上的网络命名空间和虚拟网络设备。

三.Docker技术要点
1.容器:
(a)容器的名称是唯一的。
(b)当Docker容器中指定的应用终结时,容器也自动终止。
(c)docker run添加 -d参数,使容器以守护态运行,添加 --rm 标记,容器终止后会立刻删除。--rm和-d不能同时使用。

2.数据卷:
(a)Docker挂载数据卷的默认权限是读写(rw),用户也可以通过,ro指定为只读。
(b)直接挂载文件到容器,可能造成inode改变,导致错误,所以推荐挂载目录。
(c)可以从其它已经挂载了容器卷的容器来挂载数据卷。如果删除了挂载的容器,数据卷并不会被自动删除。
(d)通过--privileged=true解决volume访问权限问题。

3.Dockerfile
(a)每个Dockerfile只能有一条CMD命令,如果指定多条,只有最后一条会被执行。如果容器启动时指定了运行命令,则会覆盖掉CMD命令。
(b)每个Dockerfile只能有一条ENYRTPOINT命令,如果指定多条,只有最后一条会被执行。ENYRTPOINT命令,不可被docker run提供的参数覆盖。ENTRYPOINT指令指定的内容必须是前台运行的。
(c)每运行一条RUN指令,镜像添加新的一层,并提交。
(d)dockerfile中的EXPOSE指令指定端口,如果没做映射docker会随机指定一个端口映射。

4.网络
(a)默认情况下,容器可以主动访问外部网络,但外部网络无法访问到容器。
(b)外部访问容器内应用,可以在Docker启动时,通过-P或-p参数来指定端口映射。
(c)docker默认是允许container互通,通过-icc=false关闭互通。一旦关闭了互通,只能通过-link name:alias命令连接指定container。
(d)使用link会在/etc/hosts中生成对应的ip映射,这样会通过主机别名而不是ip进行访问,这样的好处是可以防止ip变化。

这个时代无疑是云计算的时代,Docker是云计算技术的重要一部分。这个时代新技术层出不穷,对于开发人员和技术爱好者来说,新技术就像蓝天白云般深情而隽永,具有极大的吸引力。然而人的时间和精力终归是有限的,若水三千,只取一瓢,这是一种智慧。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值