Docker (三) --------- Docker 核心组件


一、Docker 架构

Docker 使用客户端-服务器 (C/S) 架构模式,使用远程 API 来管理和创建 Docker 容器。

在这里插入图片描述

Docker 容器通过 Docker 镜像来创建。

镜像与容器的关系类似于面向对象编程中的类与对象的关系。

Docker面向对象
镜像
容器对象

二、Docker 核心要素

Docker 包括三个核心要素镜像(Image)、容器(Container)、仓库(Repository)。理解了这三个概念,就理解了 Docker 的整个生命周期。Docker 的运行离不开以上核心几个组件的支持,Docker 的成功也是拜这几个组件所赐。有人会误以为,Docker 就是容器,但 Docker 不是容器,而是管理容器的引擎。

三、镜像

1. 镜像的基本概念

Docker 镜像就是一个只读的模板,可以用来创建 Docker 容器。例如:一个镜像可以包含一个完整的 centos 操作系统环境,里面仅安装了 mysql 或用户需要的其它应用程序。

Docker 提供了一个非常简单的机制来创建镜像或者更新现有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。

2. 镜像的组成结构

镜像是由许多层的文件系统叠加构成的,最下面是一个引导文件系统bootfs,第二层是一个 root 文件系统 rootfs,root 文件系统通常是某种操作系统,比如 centos、Ubuntu,在 root 文件系统之上又有很多层文件系统,这些文件系统叠加在一起,构成 docker 中的镜像。

在这里插入图片描述

3. 镜像的日常操作

1、下载镜像,比如下载 redis 镜像:docker pull redis:latest

reids 是查询到的镜像名称,latest 是镜像的标签 tag 获取一个镜像有两种方式,一种是从官方镜像仓库下载,一种是自己通过 Dockerfile 文件构建。如果有官方镜像,我们就不必自己用 Dockerfile 文件构建了,除非官方没有才会自己去Dockerfile 文件构建。

在这里插入图片描述

2、列出已经下载的镜像:docker images 或者 docker images redis

在这里插入图片描述

3、运行镜像:docker run -d redis 其中 -d 表示在后台运行然后通过 ps -ef | grep redis 可以查到 redis 进程

在这里插入图片描述

4、查看容器镜像的状态:docker ps

在这里插入图片描述

通过 docker exec -it 镜像 ID bash 进入 redis 容器

在这里插入图片描述

5、删除镜像:docker rmi redis:latest 注意是 rmi,不是 rm,rm 是删除容器

四、容器

1. 容器的基本概念

容器是从镜像创建的运行实例。它可以被启动、停止、删除。每个容器都是相互隔离的、保证安全平台。可以把看做一个简易版的 Linux 环境,包括 root 用户权限、进程空间、用户空间和网络空间和运行在其中的应用程序。

Docker 利用容器来运行应用,镜像是只读的,容器在启动的时候创建一层可写层作为最上层。

在这里插入图片描述

2. 容器的基本操作

启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态的容器重新启动。

通过镜像启动容器 :docker run -d redis

查看运行中的容器 :docker ps

查看所有的容器 :docker ps -a

停止容器:docker stop 容器 id 或容器名称

已经停止的容器,我们可以使用命令 docker start 来启动。
开启容器:docker start 容器 id 或容器名称

因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器

删除容器:docker rm 容器 id 或容器名称
删除容器时,容器必须是停止状态,否则会报错。

进入容器:docker exec -it 容器 id 或容器名称 bash

还可以使用 docker inspect + 容器 id 或容器名称 查看容器的更多信息。

停用全部运行中的容器:docker stop $(docker ps -q)

删除全部容器:docker rm $(docker ps -aq)

一条命令实现停用并删除容器:
docker stop $(docker ps -q) & docker rm -f $(docker ps -aq)

五、仓库

1. 仓库的基本概念

仓库是集中存放镜像文件的场所,有时候会把仓库和仓库注册服务器 (Registry) 看做同一事物,并不严格区分。实际上,仓库注册服务器上往往存放着多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签 (tag)。

仓库分为公开仓库 (Public) 和私有仓库 (Private) 两种形式。

最大的公开仓库是 Docker Hub (https://hub.docker.com/),存放了数量庞大的镜像供用户下载。当然,用户也可以在本地网络内创建一个私有仓库。

当用户创建了自己的镜像之后就可以使用 push 命令将它上传到公有或者私有仓库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上 pull 下来即可。

注:Docker 仓库的概念跟 Git 类似,注册服务器也类似于 GitHub 这样的托管服务。

2. 仓库的日常操作

用户可通过 docker search 命令来查找官方仓库中的镜像:docker search rabbitmq

在这里插入图片描述

可以看到返回了很多包含关键字的镜像,其中包括镜像名字、描述、星级(表示该镜像的受欢迎程度)、是否官方创建、是否自动创建。

官方的镜像说明是官方项目组创建和维护的,automated 资源允许用户验证镜像的来源和内容。

根据是否是官方提供,可将镜像资源分为两类:

一种是类似 centos 这样的基础镜像,被称为基础或根镜像。这些基础镜像是由 Docker 公司创建、验证、支持、提供。这样的镜像往往使用单个单词作为名字。

还有一种类型,比如 tianon/centos 镜像,它是由 Docker 的用户创建并维护的,往往带有用户名称前缀。可以通过前缀 user_name/ 来指定使用某个用户提供的镜像,比如 tianon 用户。并利用 docker pull 命令来将它下载到本地:

docker pull rabbitmq
docker pull centos
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker Engine-Community是Docker的一个组件,它是Docker核心引擎,负责管理和运行容器。如果你想安装或卸载Docker Engine-Community,可以根据你的操作系统选择相应的命令。如果你使用的是Linux系统,可以使用以下命令卸载Docker Engine-Community: - 对于Ubuntu系统,可以使用命令:sudo apt-get remove docker docker-engine docker.io containerd runc。\[1\] - 对于CentOS系统,可以使用命令:sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine。\[2\] 如果你想安装Docker Engine-Community,可以使用以下命令: - 对于Ubuntu系统,可以使用命令:sudo apt-get install docker-ce=<Contents-amd64> docker-ce-cli=<Contents-amd64> containerd.io。\[3\] 请根据你的操作系统和需求选择相应的命令进行安装或卸载。 #### 引用[.reference_title] - *1* *3* [Ubuntu 安装 Docker教程(Docker Engine - Community)](https://blog.csdn.net/qq_41204464/article/details/97539265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [Linux下安装DockerEngine-Community](https://blog.csdn.net/u011753266/article/details/108124481)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

在森林中麋了鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值