Docker基本概念:镜像、容器、仓库

2019-02-14 12:51:19   Docker
  Docker  

三个基本概念

  • 镜像 Image
  • 容器 Container
  • 仓库 Repository

理解了这三个概念,就理解了Docker的整个生命周期。


镜像

  • 操作系统分为内核用户空间。对于Linux,内核启动后,会挂在root文件系统为其提供用户空间支持。Docker镜像(Image)就相当于一个root文件系统
  • Docker镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些参数配置(如匿名卷、环境变量、用户等)
  • 镜像不包含任何动态数据,其内容在构建后也不会被改变。

分层存储

  • 利用Union FS的技术,镜像被设计成分层存储的架构。
  • 镜像是一个虚拟概念,实际由多层文件系统联合组成。
  • 镜像一层层构建,前一层是后一层的基础,并且构建后不会改变,后一层任何改变只发生在本层。例如,删除前一层文件,只会在当前层标记删除而已,前一层并未改变,文件会一直跟随镜像。
  • 因此,每层只添加需要的东西,任何额外的东西在该层构建结束前应清理掉

容器

  • 镜像与容器的关系就像面向对象程序设计中类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。
  • 容器实质是进程,但与直接在宿主机执行的进程不同,容器进程运行于属于自己的独立的命名空间。
  • 容器拥有自己的root文件系统、网络配置、进程空间、用户ID空间。
  • 容器内的进程运行在一个隔离的环境。
  • 容器存储层生命周期和容器一样,容器消亡,存储层消亡,保存于存储层的信息随容器删除而丢失
  • 容器不应该向存储层内写入任何数据,所有文件写入操作应使用数据卷(Volume)或者绑定宿主目录,在这些位置读写会跳过存储层,对宿主或网络存储读写,性能稳定性更高。
  • 数据卷生命周期独立于容器,容器消亡,数据卷不会消亡。因此使用数据卷,容器可以随意删除,重新run,数据不会丢失。

命名空间(英语:Namespace,日语:名前空間),也称名字空间、名称空间等,它表示着一个标识符(identifier)的可见范围。就好比,谷歌有一个员工id为250,Facebook也有一位员工id为250,但由于属于不同公司,不会因为ID相同而造成混淆。Namespace是Linux内核对系统资源进行隔离和虚拟化的特性,这些系统资源包括进程ID、主机名、用户ID、网络访问、进程间通讯和文件系统等


仓库

  • Docker Registry是集中存储,分发镜像的服务。
  • 一个 Docker Registry 中可以包含多个仓库(Repository);每个仓库可以包含多 个标签(Tag);每个标签对应一个镜像。
  • 格式通常为<仓库名>:<标签>,不给出标签时默认latest为标签,例如ubuntu:16.04,而ubuntu视为ubuntu:latest
  • 仓库名经常为两段式路径,比如vien/nginx ,前者往往意 味着 Docker Registry 多用户环境下的用户名,后者则往往是对应的软件名。但这 并非绝对,取决于所使用的具体 Docker Registry 的软件或服务。
  • 最常用的Registry公开服务是官方的Docker Hub

原文地址:https://www.gitbook.com/book/yeasy/docker_practice/details
viencoding.com版权所有,允许转载,但转载请注明出处和原文链接: https://viencoding.com/article/22
欢迎小伙伴们在下方评论区留言 ~ O(∩_∩)O
文章对我有帮助, 点此请博主吃包辣条 ~ O(∩_∩)O

猜你喜欢


评论

There are no comments yet.
未登录

登录后即可发表评论

登录或注册

标签

AdSense Anaconda Android apache API apt Auth AWS B-tree Bandwagon Blog bower brew bytes Caffe Catalina certbot Charles cloudcone Composer conda CoreML CPU crontab CSS csv Cuda cv2 datetime Digitalocean DNS Docker Docker-Compose Eloquent Excel export Flask FTP GET Git GitHub GitLab Gmail GoDaddy Google GTM hash Homebrew Homestead HTML http HTTPS IDEA image imagemagick imagick imgick import InnoDB ios iou iPhone ISO8601 iTerm2 Java JavaScript JPG JS Keras Laravel Laravel-Admin lazyload Linux list Livewire lnmp load logs Lravel Mac Markdown matplotlib md5 mix MobileNet Mojave mongo MongoDB MySQL Namesilo Nginx Node npm numpy Nvidia Nvidia-Docker onevps OpenCV Openpose openpyxl oss Outline parse PayPal PHP php-fpm PhpStorm PHP扩展 PIL Pillow pip PNG POST Protobuf PyCharm pyenv pymongo Python Python,人工智能,机器学习,VOC,xml Queue Redis requests RGB Sanctum save selenium SEO Shadowsock Shadowsocks ShadowsocksR simplemde Spring Boot SQLServer ssd SSH ssl SSL证书 SSR str Sublime sudo swap Swift Tensorflow TensorflowLite Terminal Terminator timestamp Ubuntu urllib UTC v2ray Valet Validation Validator VienBlog virtualenvs VPN VPS Vultr Web Windows WordPress Xcode xlsx yaml YAPI YUV zip zmq zsh 上网 下载图片 主从同步 云主机 云存储 云开发 云服务器 人工智能 优化 优惠码 伪原创 作弊与反作弊 免费ss账号 免费提现 切片 前端 加密 协议 博客 友链 双击事件 后台运行 后端 命令 国内镜像源 图标 图片操作 图片转换 域名 多身份认证 大小写转换 姿态检测 安卓模拟器 安装 定时任务 定时执行 密码 密钥 导出导入 小程序码 延迟加载 异常 微信 微信小程序 快捷方式 慢查询 懒加载 提现 搜索引擎 搬瓦工 搭梯子 教程 数据库 数据重复 文件上传 无法登录 日志 日期 时区 时间 时间戳 服务器 机器学习 权限 梯子 模拟浏览器 港版支付宝 漏洞 爬虫 生活服务 用户管理 病毒 登录 目标检测 科学上网 系统升级 索引 组件 组件开发 编辑器 自动付款 自定义组件 英文伪原创 计划任务 计算机视觉 订阅通知 认证 语法 读写分离 远程连接 配置文件 重定向 错误异常 错误提示 队列 阿里云 香港 香港手机号
亲情非友情链接