2-Docker基本概念简介
2-Docker基本概念简介
容器介绍#
容器 容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行
容器于虚拟机的区别#
容器包含:应用程序本身
依赖:比如应用程序需要的库或其他软件
容器运行在host的用户空间 与操作统是完全隔离的状态
所有的容器共享同一个 Host OS,这使得容器在体积上要比虚拟机小很多
传统的虚拟机 比如 VMWare, KVM, Xen 有完整的应用部署本身 MB 和完整的操作系统系统 几十GB大小
容器的应用场景#
容器使软件具备了超强的可移植能力。
如今的操作系统架构十分复杂 host 虚拟机 云架构 私有云 公有云等 每种服务所依赖的环境不同
在迁移的时候无法适应每种服务能够在所有的部署环境中顺利运行 开发需要考虑不同的环境 运维人员也需要根据不同的环境部署
工作量十分巨大
docker借用集装箱的思想 Docker 可以将任何应用及其依赖打包成一个轻量级、可移植、自包含的容器。
容器可以运行在几乎所有的操作系统上。
容器优势#
开发人员: Build Once, Run Anywhere
运维人员:Configure Once, Run Anything 只需要配置好标准的 runtime 环境,服务器就可以运行任何容器
容器规范#
容器不光是 Docker,还有其它容器,
比如 CoreOS 的 rkt 为保证不同容器之间的兼容 包含 Docker、CoreOS、Google在内的若干公司共同成立了一个叫 Open Container Initiative(OCI) 的组织,其目是制定开放的容器规范。
目前 OCI 发布了两个规范:runtime spec 和 image format spec。
容器runtime#
runtime 是容器真正运行的地方。runtime 需要跟操作系统 kernel 紧密协作,为容器提供运行环境。
lxc、runc 和 rkt 是目前主流的三种容器 runtime。
lxc 老牌runtime
runc docker 默认runtime
rkt 是 CoreOS 开发的容器 runtime 可以运行docker容器
容器编排工具#
用户通过编排工具来管理容器。容器管理工具对内与 runtime 交互,对外为用户提供 interface,比如 CLI
容器管理平台是架构在容器编排引擎之上的 一个更为通用的平台
通常容器管理平台能够支持多种编排引擎,抽象了编排引擎的底层实现细节,为用户提供更方便的功能,lxd 是 lxc 对应的管理工具。
runc 的管理工具是 docker engine。docker engine 包含后台 deamon 和 cli 两个部分。我们通常提到 Docker,一般就是指的 docker engine。
rkt 的管理工具是 rkt cli。
容器定义工具#
容器定义工具 允许用户 定义 容器的 内容和属性,这样容器就能够被保存,共享和重建。
docker image 是 docker 容器的 模板,runtime 依据 docker image 创建容器。
dockerfile 是包含若干命令的文本文件,可以通过这些命令创建出 docker image。 可以创建模板
ACI (App Container Image) CoreOS 开发的 rkt 容器的 image 格式。 类似于 docker image
容器仓库#
容器是通过 image 创建的,需要有一个仓库来统一存放 image,这个仓库就叫做 Registry。 存放 image文件的仓库
企业可以用 Docker Registry 构建私有的 Registry。 可以创建私人仓库
Docker Hub 公共托管 Registry 里面有很多image
Quay.io 是另一个公共托管 Registry,提供与 Docker Hub 类似的服务。
名词解释
- 镜像(image)
Docker镜像就好比是一个模板,可以通过这个模板来创建容器服务,tomcat镜像 ===> run ===> tomcat01容器, 通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的) - 容器(container)
Docker利用容器技术,独立运行一个或者一组应用, 通过镜像来创建的
启动,停止,删除,基本命令!
就目前可以把这个容器理解为一个建议的linux系统 - 仓库(repository)
存放镜像的地方
Docker Hub(默认是国外的)
阿里云,,,都有容器服务(配置镜像加速!)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!