运维docker02-docker基础
1、docker简介
- 提到"Docker"时,可能是指如下3种概念之一。
- Docker公司。
- Docker的容器运行时和编排引擎。
- Docker是一种运行于Linux和Windows上的软件,用于创建、管理和编排容器。
- Docker开源项目(Moby) 。
- Docker是在GitHub上开发的Moby开源项目的一部分。
1、Docker公司
- Docker公司位于旧金山,是整个Moby开源项目的维护者。Docker公司还提供包含支持服务的商业版本的Docker。
2、Docker引擎
- 多数技术人员在谈到Docker时,主要是指Docker引擎。
- Docker引擎是用于运行和编排容器的基础设施工具。Docker引擎是运行容器的核心。
- Docker引擎可以类比为VMware的ESXi,ESXi是运行虚拟机的核心管理程序。
- Docker引擎可以从Docker网站下载,也可以基于GitHub上的源码进行构建。无论是开源版本还是商业版本,都有Linux和Windows版本。
- Docker引擎主要有两个版本:企业版(EE)和社区版。
3、Docker开源项目(Moby)
- Moby项目的目标是基于开源的方式,发展成为Docker上游,并将Docker拆分为更多的模块化组件。
- Moby项目托管于GitHub的Moby代码库,包括子项目和工具列表。
- 核心的Docker引擎项目位于GitHub的moby/moby,但是引擎中的代码正持续被拆分和模块化。
- 简单的说,2017之后docker就是企业版的docker,Moby就是社区版的docker。
2、Docker三个基本概念
1、镜像(Image)
- 镜像是一个包含了简易操作系统和应用的只读模板。
- 镜像是创建Docker容器的基础。
- Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人哪里下载一个已经做好的镜像来直接使用。
2、容器(Container)
- Docker容器类似于一个轻量级的沙箱,Docker利用容器来运行和隔离应用。
- 容器是从镜像创建的应用运行实例。它可以启动、开始、停止、删除,而这些容器都是彼此相互隔离、互不可见的。
- 可以把容器看做是一个简易版的Linux环境(包括root用户权限、进程空间、用户空间和网络空间等)和运行在其中的应用程序。
3、仓库(Repository)
- 仓库注册服务器(Registry):用于管理仓库,存放着多个仓库。
- Docker hub就是Docker公司提供的仓库注册服务器。
- 第三方仓库注册服务器是由其他公司或组织提供。
- 仓库(repository):用于集中存储某一类镜像。
- 一个仓库包含同一个软件不同版本的镜像,使用不同的标签(tag)来标记软件的各个版本。
- 根据所存储的镜像公开分享与否,Docker仓库可以分为公开仓库(Public)和私有仓库(Private)两种形式。
- 镜像:可以通过<仓库名>:<标签>的格式来指定是软件的哪个版本的镜像。如果不给出标签,将以latest作为默认标签。
- docker公司的仓库注册服务器(Docker Hub),Docker客户端默认使用的仓库注册服务器。
- Docker Hub分为官方仓库(Official Repository)和非官方仓库(Unofficial Repository)。
- 官方仓库中的镜像是由Docker公司审查的。这些镜像会及时更新,由高质量的代码构成,这些代码是安全的、有完善的文档和最佳实践。
- 非官方仓库是个人建立的,安全性不能被保证。
3、Docker架构
- Docker有两个主要组件:Docker客户端和Docker daemon(有时也被称为“服务端"或者“引擎"),C/S架构模式。
-
daemon实现了Docker引擎的API。
- Docker客户端通过Docker服务器的API来管理和创建Docker容器。Docker服务端负责构建、运行和分发Docker镜像。Docker客户端和服务端可以运行在同一台机器上,也可以不在同一台服务器上。
- 使用Linux默认安装时,客户端与daemon之间的通信是通过本地IPC/UNIX Socket完成的(/var/run/docker.sock);在Windows上是通过名为npipe:////./pipe/docker_engine的管道(pipe )完成的。
- 在运维视角中,docker主要包括下载镜像、运行新的容器、登录新容器、在容器内运行命令、以及销毁容器。
- 在开发视角中,更多关注与应用相关的内容。使用Dockerfile将应用容器化,并在容器中运行它们。
-
- DockerClient:Docker客户端(Docker)是许多Docker用户与Docker交互的主要方式
- DOCKER_HOST:一个物理或者虚拟的机器用于运行Docker守护进程和容器。Docker daemon进程(dockerd)侦听Docker APl命令,管理Docker对像,如镜像、容器、网络和卷
- Registry(仓库注册服务器):用于管理镜像仓库。
1 | # # |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!