容器管理工具Containerd(1)




一、Containerd安装

1 dnf安装

1.1 获取阿里源

我们可以从阿里云获取适用于该系统的 Docker DNF 源,该源包含了 Containerd 软件的相关信息,便于后续安装。

代码如下(示例):

# 先查看当前的镜像源
dnf repolist -v

# 如果不是阿里源,再执行以下命令,从阿里云下载 Docker DNF 源配置文件到系统指定目录
# ce 表示 Community Edition,社区版
dnf install -y wget

# -O 输出到指定文件
wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

二、使用步骤

1 引入库

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

再次使用 dnf repolist -v 命令,查看输出中是否包含新添加的阿里云 Docker 源信息。
在这里插入图片描述

2 dnf命令行安装

通过上一步获取到 Containerd 软件信息后,使用 dnf 命令进行安装。

代码如下(示例):

# 安装 containerd.io 软件
dnf -y install containerd.io

在这里插入图片描述

3 启动服务


执行以下系统命令

# 设置containerd服务启动及开机自启动
systemctl enable containerd

# 启动命令
systemctl start containerd

# 查看containerd服务启动状态
systemctl status containerd

4 验证测试

# 安装Containerd时ctr命令亦可使用,ctr命令主要用于管理容器及容器镜像等。
# 使用ctr命令查看Containerd客户端及服务端相关信息。
ctr version

在这里插入图片描述

把 /usr/local/bin 加入到永久环境变量

# 打开家目录下的文件
vi ~/.bashrc

# 在 export PATH 后面另起一行,补上路径
export PATH=$PATH:/usr/local/bin

# 更新,使生效
source ~/.bashrc

重启电脑 reboot

三.【掌握】Containerd镜像管理

不同环境下 Docker、Containerd 及 Kubernetes 管理镜像的命令工具解析:

  • Docker 使用 docker images 命令管理镜像。
  • 在单机环境下,Containerd 使用 ctr images 命令管理镜像,其中 ctr 是 Containerd 本身自带的命令行接口(CLI)工具。
  • 在 Kubernetes(K8s)集群中,若使用 Containerd 作为容器运行时,可使用 crictl images 命令管理镜像,crictl 是 Kubernetes 社区开发的用于与容器运行时交互的专用命令行接口(CLI)工具。

1 ctr

# 获取命令帮助
ctr --help

在这里插入图片描述

2 ctr images

# 获取命令帮助
ctr images

在这里插入图片描述

2 镜像相关操作

2.1 查看镜像

ctr images ls

在这里插入图片描述

2.2 拉取镜像

containerd支持oci标准的镜像,所以可以直接使用docker官方或dockerfile构建的镜像
由于直接访问Docker本身的镜像网络受阻,我们从国内的阿里云镜像进行访问(一般版本不是最新版)。
操作步骤为:
1、通过账号,或者APP扫码的方式,登录 阿里云 官网;
2、找到【ACR容器镜像服务】菜单;
3、点击【制品中心】,搜索相应的软件镜像;
4、复制镜像的仓库地址(完整的仓库地址);
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 从龙蜥社区进行下载安装
ctr images pull --all-platforms registry.openanolis.cn/openanolis/nginx:1.14.1-8.6

在这里插入图片描述

查看已下载容器镜像
ctr images ls
ctr i ls

在这里插入图片描述

# 指定平台下载容器镜像
ctr images pull --platform linux/amd64 registry.openanolis.cn/openanolis/nginx:1.14.1-8.6

在这里插入图片描述

如果有科学上网工具,如何拉取Docker仓库或者其他仓库(如K8S)的官方镜像呢?

ctr images pull 仓库完整路径/镜像:tag标签

例如拉取Docker仓库中的hello-world镜像

ctr images pull docker.io/library/hello-world:latest

2.3 镜像挂载

# 把已下载的容器镜像挂载至当前文件系统
ctr images mount registry.openanolis.cn/openanolis/nginx:1.14.1-8.6 /mnt

在这里插入图片描述

# 查看挂载的内容
ls /mnt

在这里插入图片描述

2.4 镜像卸载

# 卸载,注意,需要离开 /mnt 目录进行操作
ctr i unmount /mnt

在这里插入图片描述

2.5 镜像导出

# 回到家目录
cd

# 把容器镜像导出 --all-platforms 表示导出所有平台镜像
# 注意,如果你拉取的时候,没有加 --all-platforms 参数,那么导出的时候,也不要加它
ctr i export --all-platforms  nginx.img  registry.openanolis.cn/openanolis/nginx:1.14.1-8.6

# 查看镜像
ll -hrt
# 复习一下,ll命令里的参数
	- h 表示human,用人能看懂的方式,展示文件大小
	- r 表示reverse逆序,所以是倒序
	- t 表示time时间,即合起来,按时间倒排,那么,最近修改的文件,将最靠近屏幕下方

在这里插入图片描述
6 镜像删除

# 删除指定容器镜像
ctr image rm registry.openanolis.cn/openanolis/nginx:1.14.1-8.6

在这里插入图片描述

# 再次查看容器镜像
ctr images ls
# 如果显示内容过多,只想显示镜像名称,可以结合awk
ctr images ls | awk '{print $1}'

在这里插入图片描述

2.7 镜像导入

# 导入容器镜像
ctr images import nginx.img

在这里插入图片描述

# 查看容器列表
ctr image list

在这里插入图片描述

2.8 修改镜像标签(常用)

# 把docker.io/library/nginx:alpine 修改为 nginx:alpine
ctr images tag registry.openanolis.cn/openanolis/nginx:1.14.1-8.6 nginx:1.14.1-8.6

下期文章 容器管理工具Containerd(2)

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐