容器管理工具Containerd(1)
本文讨论了 Containerd 容器管理工具的相关知识,包括其发展历史、安装方式、镜像管理、容器管理、命名空间管理以及二进制安装方法等内容。关键要点包括:1. 学习 Containerd 的原因:Containerd 处于容器技术栈基础层面,负责容器生命周期管理,是理解更高级容器编排工具(如 Kubernetes)的基础。2. 发展历史:2007 年 Google/IBM 明确提出“云计算”概念
容器管理工具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)
更多推荐
所有评论(0)