containerd安装和使用
文章目录
- containerd简介
- 安装
- 下载安装包
- 准备contained.service文件
- 准备配置文件
- 部署runc
- 测试
- containerd命令行工具
- 安装nerdctl
- 安装cni
- 使用nerdct下载镜像启动容器
containerd简介
containerd是一个标准的容器运行时,它强调简单性、健壮性和可移植性,containerd主要可以实现以下功能:
- 容器生命周期管理(从创建到删除)
- 容器镜像pull和push
- 存储管理(管理镜像和容器数据的存储)
- 管理容器网络接口及网络
- 与容器运行时进行交互(比如调用runc运行容器)
containerd的目的并不是面向最终用户,而是为了集成到更上层的系统中,例如Swarm、Kubernetes、Mesos等容器编排系统。
安装
下载安装包
这里采用二进制安装的方式,首先到github下载containerd的安装包:https://github.com/containerd/containerd/releases
wget https://github.com/containerd/containerd/releases/download/v1.6.6/containerd-1.6.6-linux-amd64.tar.gz
mkdir /tmp/containerd/
tar xvf containerd-1.6.6-linux-amd64.tar.gz -C /tmp/containerd/
cp /tmp/containerd/bin/* /usr/bin/
准备contained.service文件
cat /lib/systemd/system/containerd.service
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target[Service]
#uncomment to enable the experimental sbservice (sandboxed) version of containerd/cri integration
#Environment="ENABLE_CRI_SANDBOXES=sandboxed"
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/bin/containerdType=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=infinity
# Comment TasksMax if your systemd version does not supports it.
# Only systemd 226 and above support this version.
TasksMax=infinity
OOMScoreAdjust=-999[Install]
WantedBy=multi-user.target
准备配置文件
containerd的默认配置文件为/etc/containerd/config.toml,可以通过下面的命令生成一个默认配置,然后配置一下镜像加速:
mkdir /etc/containerd
containerd config default > /etc/containerd/config.toml
cat /etc/containerd/config.toml #添加了镜像加速配置
153 [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
154 [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
155 endpoint=[
156 "http://docker.mirrors.ustc.edu.cn",
157 "http://hub-mirror.c.163.com"
158 ]
部署runc
wget https://github.com/opencontainers/runc/releases/download/v1.1.3/runc.amd64 -O /usr/bin/runc
chmod +x /usr/bin/runc
测试
启动服务
systemctl daemon-reload
systemctl start containerd
下载镜像启动容器
ctr images pull docker.io/library/alpine:latest
ctr run -t --net-host docker.io/library/alpine:latest test-container sh
containerd命令行工具
因为containerd提供的ctr命令比较简单,所以推荐使用nerdctl命令来代替ctr命令,nerdctl的github地址是:https://github.com/containerd/nerdctl
安装nerdctl
wget https://github.com/containerd/nerdctl/releases/download/v0.22.0/nerdctl-0.22.0-linux-amd64.tar.gz
tar xvf nerdctl-0.22.0-linux-amd64.tar.gz
cp nerdctl /usr/bin/
nerdctl version
安装cni
wget https://github.com/containernetworking/plugins/releases/download/v1.1.1/cni-plugins-linux-amd64-v1.1.1.tgz
mkdir -p /opt/cni/bin
tar xvf cni-plugins-linux-amd64-v1.1.1.tgz -C /opt/cni/bin/
使用nerdct下载镜像启动容器
nerdctl pull nginx
nerdctl run -d -p 80:80 --name nginx --restart=always nginx
nerdctl exec -it nginx sh
containerd安装和使用相关推荐
- containerd安装及常用命令
- k8s containerd集群配置安装完整踩坑教程
完整踩坑和精简内容 k8s containerd配置 containerd安装参考 k8s安装参考 环境 两台机器 hostnamectl set-hostname master hostnamect ...
- 实战:centos7上containerd的安装-20211023
目录 文章目录 目录 实验环境 实验软件 1.安装libseccomp依赖包 2.下载containerd软件包并解压 3.生成containerd 的默认配置文件config.toml 4.启动co ...
- Containerd 的前世今生和保姆级入门教程
1. Containerd 的前世今生 很久以前,Docker 强势崛起,以"镜像"这个大招席卷全球,对其他容器技术进行致命的降维打击,使其毫无招架之力,就连 Google 也不例 ...
- Ubuntu 安装docker-engine的三种方法
按照以下步骤一步步执行,就可以安装好docker-engine,参见官网提示 1 删除以前有过的安装 执行命令: sudo apt-get remove docker docker-engine do ...
- kubeadm部署K8S集群并使用containerd做容器运行时
kubeadm部署K8S集群并使用containerd做容器运行时(内容全部实战验证有任何问题欢迎留言咨询讨论) 前言 去年12月份,当Kubernetes社区宣布1.20版本之后会逐步弃用docke ...
- Containerd 的前世今生和级入门教程
https://mp.weixin.qq.com/s/DhLmd9tv88-Vbk6dwx3umg https://fuckcloudnative.io/posts/getting-started-w ...
- 从0开始安装k8s1.25【最新k8s版本——20220904】
文章目录 从0开始安装k8s1.25 一.准备工作 1.安装Vmware和虚拟机CentOS 2.虚拟机CentOS环境初始化 3.安装容器运行时Containerd 二.安装kubelet kube ...
- docker安装后启动失败
docker官网安装地址 Install Docker Engine on CentOS | Docker Documentation #卸载旧的版本 yum remove -y docker \ d ...
最新文章
- docker 核心概念整理
- Jupyter notebook的内核是什么?Ipython
- asp.net表单提交方法GET\POST
- dubbo源码分析(3)
- npm 全局安装vuecli报错_前端脚手架CLI生成模版命令工具(包括,npm包的发布,脚手架的搭建,注意事项,优化等)...
- Python对IP地址列表排序、对列表进行去重、IP地址与MAC地址组合的多个元组的列表排序
- loopback接口、router ID详解
- java基础--IO流之File类
- Java案例:按奇偶行拆分文件
- Codejam Qualification Round 2019
- dos2unix,unix2dos
- 在mac上制作PDF的基础教程
- Vc2013实战(1) 别无选择的Mfc
- 软件测试方法和技术知识点简摘
- python中index什么意思_Python中index()和seek()的用法(详解)
- Python开发——做一个简单的【表白墙】网站
- 百鸡问题扩展-N鸡问题
- MongoDB 文档字段增删改
- Java高级框架——Spring学习
- RTSP协议中英文对照(RFC2326,RFC7826)