1.初识docker

xiaoxiao2021-03-01  42

一.Docker简介 1.什么是容器?

容器有效地将由单个操作系统管理的资源划分到孤立的组中,以更好地在孤立的组之间平衡有冲突的资源使用需求。

与虚拟化相比,这样既不需要指令级模拟,也不需要即时编译。容器可以在核心CPU本地运行指令,而不需要任何的专门

的解释系统

2.什么是docker?   (1)docker是能够把应用自动部署到容器的开源引擎,是一种操作系统级别的虚拟化方案   (2)只能运行相同或相似内核的操作系统   (3)依赖Linux内核特性:Namespace和Cgroups(Control Group)

3.Docker的目标   提供简单轻量的建模方式   职责的逻辑分离   快速高效的开发生命周期   鼓励使用面向服务的架构(docker鼓励单个容器只运行一个服务)   符合高内聚,低耦合,单一任务的目标

4.Docker 的使用场景   1.使用Docker容器开发,测试,部署服务   2.创建隔离的运行环境   3.搭建测试环境   4.构建多用户的平台即服务(PaaS)基础设施   5.提供软件即服务(SaaS)应用程序   6.高性能,超大规模的宿主机部署

二 Dockers的基本组成

1.Docker客户端 和Docker daemon   C/S架构 2.Docker Image 镜像 Docker Image 是采用了分层联合系统(aufs, Advanced union File System),  

关于 AUFS 的几个特点:

AUFS 是一种联合文件系统,它把若干目录按照顺序和权限 mount 为一个目录并呈现出来默认情况下,只有第一层(第一个目录)是可写的,其余层是只读的。增加文件:默认情况下,新增的文件都会被放在最上面的可写层中。删除文件:因为底下各层都是只读的,当需要删除这些层中的文件时,AUFS 使用 whiteout 机制,它的实现是通过在上层的可写的目录下建立对应的whiteout隐藏文件来实现的。修改文件:AUFS 利用其 CoW (copy-on-write)特性来修改只读层中的文件。AUFS 工作在文件层面,因此,只要有对只读层中的文件做修改,不管修改数据的量的多少,在第一次修改时,文件都会被拷贝到可写层然后再被修改。节省空间:AUFS 的 CoW 特性能够允许在多个容器之间共享分层,从而减少物理空间占用。查找文件:AUFS 的查找性能在层数非常多时会出现下降,层数越多,查找性能越低,因此,在制作 Docker 镜像时要注意层数不要太多。性能:AUFS 的 CoW 特性在写入大型文件时第一次会出现延迟。

   ....  add Apache  add emacs  rootfs(ubuntu)  bootfs

3.Docker Container 容器   通过镜像启动   启动和执行阶段   写时复制(copy on write)

4.Docker Registry 仓库   公有   私有   Docker Hub

三 Docker容器相关技术简介  依赖linux内核的Namespace特性   Namespace 命令空间   编程语言    封装 -->代码隔离   操作系统     进程,网络,文件系统等系统资源的隔离

Docker的五种命令空间   PID(Process ID)    实现进程隔离   NET(Network)       实现网络隔离   IPC(Interprocess Communication)  实现跨进程通信的访问   MNT(Mount)         挂载点,实现文件系统的隔离   UTS(Unix Timesharing System) 实现隔离内核和版本标识

Contorl Group   资源限制   优先级设定   资源计量   资源控制

四 Docker的安装

检查ubuntu版本 uname -a 14.04以上均支持docker ll /sys/class/misc/device-mapper 检查存储驱动

安装ubuntu维护的版本 sudo apt-get install docker.io source /etc/bash_completion.d/docker.io

使用非root运行docker sudo groupadd docker sudo gpasswd -a ${USER} docker sudo service docker restart

五 容器的基本操作 启动容器 docker run IMAGE [COMMAND] [ARG...]

查看容器 docker ps -a -l docker inspect name/id

自定义容器名 docker run --name=自定义名 -i -t IMAGE /bin/bash

重启启动已停止的容器 docker start [-i] 容器名 docker stop 容器名

删除已经停止的容器 docker rm 容器名/ID

转载请注明原文地址: https://www.6miu.com/read-4150217.html

最新回复(0)