赞
踩
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口
1.是一种轻量级的“虚拟机”,Docker是一个用于开发,交付和运行应用程序的开放平台
2.Docker是一个开源的应用容器引擎,基于go语言开发并遵循了apache2.0协议开源
3.在Linux容器里运行应用的开源工具——》容器引擎,让开发者可以打包大门的应用及依赖包到一个可移植的镜像中,然后发布到任何流行的linux或者window机器中
4.Docker的容器技术可以在一台主机上轻松为任何应用创建一个轻量级的、可移植的、自给自足的容器
5.Docker的Logo设计为蓝色鲸鱼,拖着许多集装箱
6.鲸鱼可看作为宿主机,集装箱可理解为相互隔离的容器,每个集装箱中都包含自己的应用程序
7.Docker的设计宗旨:Build,Ship and Run Any App,Anywhere(在任何地方构建,发布和允许任何应用程序)
8.即通过对应用组件的封装、发布、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,到处运行”的目的。这里的组件,既可以是一个应用,也可以是一套服务,甚至是一个完整的操作系统
沙箱(Sandbox):在计算机安全领域,沙箱是一种程序的隔离运行机制
1.沙箱是一个虚拟系统程序,沙箱提供的环境相对于每一个运行的程序都是独立的,而且不会对现有的系统产生影响
2.搭建测试环境,沙箱的应用只能访问自己的应用访问目录,而不能应用之间的资源进行共享,这样就形成了一个相对安全的机制,由于沙箱具有非常良好的独立性、隔离性,所以能够搭建一些具有高风险的软件进行测试,使得应用组件经过Docker的封装,可以随意移植到服务上
namespace | 系统调用参数 | 隔离内容 |
---|---|---|
UTS | CLONE_NEWUTS | 主机名与域名 |
IPC | CLONE_NEWWIPC | 信号量、消息队列和共享内存 |
PID | CLONE_NEWPID | 进程编号 |
NETWORK | CLONE_NEWNET | 网络设备、网络栈、端口等 |
MOUNT | CLONE_NEWNS | 挂载点(文件系统) |
USER | CLONE_NEWUSER | 用户和用户组(3.8以后的内核才支持) |
特性 | Docker容器 | 虚拟机vmware sphere |
---|---|---|
启动速度 | 秒级(进程控制) | 分钟级(来宾操作系统管理) |
计算能力损耗 | 几乎无 | 损耗50%左右 |
性能 | 接近原生 | 弱于 |
系统支持量(单机) | 成百上千(进程) | 一般几十台(操作系统级别) |
隔离性 | 资源隔离/限制 namespace/cgroup (进程级别) | 完全隔离 系统级别(更彻底) |
操作系统 | 主要支持Linux(只需要支持引擎) | 几乎所有(吃宿主机操作系统的支持) |
磁盘占用 | MB | GB (操作系统镜像2G) |
封装程度 | 只打包项目代码和依赖关系,共享宿主机内核 | 完整的操作系统,与宿主机I隔离 |
镜像 | 一个面向Docker容器引擎的只读模板 |
---|---|
容器 | 从镜像创建的运行实例 |
仓库 | 集中保留镜像的地方,分为共有仓库和私有仓库 |
1、镜像
Docker的镜像是创建容器的基础,类似虚拟机的快照,可以理解为一个面向Docker容器引擎的只读模板
通过镜像启动一个容器,一个镜像是一个可执行的包,其中包括运行应用程序所需要的所有内容包含代码,运行时间,库、环境变量、和配置文件
Docker镜像也是一个压缩包,只是这个压缩包不只是可执行文件,环境部署脚本,它还包含了完整的操作系统。因为大部分的镜像都是基于某个操作系统来构建,所以很轻松的就可以构建本地和远端一样的环境,这也是Docker镜像的精髓
2、容器
Docker的容器是从镜像创建的运行实例,它可以被启动、停止和删除。所创建的每–个容器都是相互隔离、互不可见,以保证平台的安全性
可以把容器看做是要给简易版的1inux环境(包括root用户权限、镜像空间、用户空间和网络空间等)和运行在其中的应用程序
3、仓库
Docker仓库是用来集中保存镜像的地方,当创建了自己的镜像之后,可以使用push命令将它上传到公有仓库(Public) 或者私有仓库(Private)。当下次要在另外一台机器上使用这个镜像时,只需从仓库获取
仓库分为
公有仓库:Docker官方仓库
私有仓库:个人化、私有化的仓库
Docker的镜像、容器、日志等内容全部都默认存储在/var/lib/docker 目录下
总结:Docker是容器管理工具,容器由镜像创建而来,镜像从仓库中获取而来,仓库分为公有、私有
#小结:
docker是开源的容器引擎,
go语言开发的,是容器里运行应用的工具,是一个轻量级的虚拟机可以利用ocker在多台主机上轻松的创建并运行容器
docker容器可以被看做运行在宿主机上一个进程,容器共享宿主机的内核,容器间是通过namespace(命名空间、名称空间)隔离资源,通过cgroups(资源配额)去限制资源
核心概念
镜像:
运行容器的基础,
包含运行的应用程序所需的所有内容
容器:
是从镜像创建的运行实例
仓库:
集中保存镜像的地方(公有仓库docker hub,私有仓库harhor)
CentOS安装Docker的两种方式
1.使用CURL获得Docker的安装脚本进行安装
2.使用YUM仓库来安装Docker
1.#关闭防火墙 systemctl stop firewalld.service setenforce 0 2.#安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2 -------------------------------------------------------------------------------- #yum-utils:提供了 yum-config-manager 工具。 #device mapper: 是Linux内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。 #device mapper存储驱动程序需要 device-mapper-persistent-data 和 lvm2。 -------------------------------------------------------------------------------- 3.#设置阿里云镜像源 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 4.#安装 Docker-CE 社区版并设置为开机自动启动 yum install -y docker-ce systemctl start docker.service systemctl enable docker.service 5.#查看 docker 版本信息 docker version
https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
打开阿里云的网站,
vim /etc/sysctl.conf
net.ipv4.ip_forward=1 #开启路由转发
sysctl -p
systemctl restart network
systemctl restart docker
下载nginx的镜像源
先搜一下doctor search nginx
下载:docker pull nginx
查看镜像信息
镜像下载后存放在/var/lib/docker。
Docker相关的本地资源存放在/var/lib/docker/目录下,其中containers月录存放容器信总,image目录存放镜像信息,overlay2目录下存放具体的镜像底层文件。
查看下载的镜像文件信总
ocker
下载nginx的镜像源 先搜一下doctor search nginx 下载:docker pull nginx 查看镜像信息 镜像下载后存放在/var/lib/docker。 Docker相关的本地资源存放在/var/lib/docker/目录下,其中containers月录存放容器信总,image目录存放镜像信息,overlay2目录下存放具体的镜像底层文件。 查看下载的镜像文件信总 cat /var/lib/docker/image/overlay2/repositories.json
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。