代码拉取完成,页面将自动刷新
提示:ctr是containerd自带的命令行工具,而nerdctl是对ctr工具的一个补充
提示:containerd有命名空间的概念,不同命名空间的所有资源都是互相隔离的;所以如果不是直接使用的containerd,而是第三方集成containerd使用时,都需要指定命名空间,如:
- 当k8s集成containerd时,使用ctr或enrdctl处理镜像给k8s使用时,需要指定命名空间为k8s的命名空间:--namespace k8s.io
- 当docker集成containerd时,使用ctr或enrdctl处理镜像给docker使用时,需要指定命名空间为k8s的命名空间:--namespace moby
指令 | 说明 |
---|---|
ctr namespaces create {命名空间} | 创建命名空间 |
ctr namespaces ls | 查看命名空间 |
ctr namespaces rm {命名空间} | 移除命名空间 |
ctr namespaces label {命名空间} {标签} | 给命名空间添加标签 如:ctr namespaces label dev labelA=123 |
...... | ...... |
指令 | 说明 |
---|---|
nerdctl namespace create {命名空间} | 创建命名空间 |
nerdctl namespace ls | 查看命名空间列表 |
nerdctl namespace inspect {命名空间} | 查看命名空间详情 |
nerdctl namespace remove {命名空间} | 移除命名空间 |
...... | ...... |
指令 | 说明 |
---|---|
nerdctl login -u {username} -p {password} {serverAddress} | 验证是否能够登录镜像仓库 注: nerdctl login -h 查看更多参数示例: nerdctl login --insecure-registry -u root -p pwd123 https://harbor.insupro.com
|
nerdctl logout | 登出 |
...... | ...... |
提示:containerd有命名空间的概念,不同命名空间的所有资源都是互相隔离的;所以如果不是直接使用的containerd,而是第三方集成containerd使用时,都需要指定命名空间,如:
- 当k8s集成containerd时,使用ctr或enrdctl处理镜像给k8s使用时,需要指定命名空间为k8s的命名空间:--namespace k8s.io
- 当docker集成containerd时,使用ctr或enrdctl处理镜像给docker使用时,需要指定命名空间为k8s的命名空间:--namespace moby
指令 | 说明 |
---|---|
ctr images ls | 查看镜像 |
ctr images rm {镜像名} | 删除镜像 |
ctr images rm $(ctr images ls -q) | 删除所有镜像 |
ctr images pull {镜像名} | 拉取镜像 示例: ctr images pull --all-platforms docker.io/library/redis:latest --skip-verify:跳过ssl认证 --plain-http:允许使用http --user:输入用户名密码,username[:password] 示例:ctr images pull --user 用户名:密码 --plain-http 镜像地址 注: ctr images pull -h 查看更多参数 |
ctr images push {镜像名} | 推送镜像 --skip-verify:跳过ssl认证 --plain-http:允许使用http --user:输入用户名密码,username[:password] 示例:ctr images push --user 用户名:密码 --plain-http 镜像地址 注: ctr images push -h 查看更多参数 |
ctr images export {镜像文件} {镜像名} | 导出镜像 注:导出的镜像文件名自取即可 示例: ctr images export --all-platforms redis.image docker.io/library/redis:latest 注:若导出时报类似于 ctr: content digest sha256:xxxxxx not found 这样的错误,那么你再pull拉镜像时,就需要指定--all-platforms 参数,导出时也需要指定该参数 |
ctr images import {镜像文件} | 导入镜像 示例:ctr images import redis.image |
ctr images tag {镜像名} {新镜像名} | 修改镜像标签 示例: ctr images tag docker.io/library/redis:latest docker.io/library/redis:alpha
|
...... | ...... |
指令 | 说明 |
---|---|
nerdctl pull {镜像} |
拉取镜像 示例: nerdctl pull docker.io/library/redis:latest 示例: nerdctl pull redis:latest
|
nerdctl images --names 或 nerdctl images |
查看镜像列表 --names:展示完整的镜像名 |
nerdctl tag {镜像名} {镜像别名} |
给镜像创建一个别名 示例: nerdctl tag redis:latest my-redis nerdctl tag redis:latest my-redis:alpha
|
nerdctl save -o {镜像文件} {镜像} |
导出镜像 示例: nerdctl save -o redis.img.gz redis:latest 注:镜像文件自定义命名即可 |
nerdctl load -i {镜像文件} |
导入镜像 示例: nerdctl load -i redis.img.gz
|
nerdctl rmi {镜像名/镜像id} | 删除镜像 |
nerdctl rmi $(nerdctl images -q) | 删除所有镜像 |
nerdctl build -t {镜像} {上下文} |
构建镜像 示例: nerdctl build -t my-nginx:my-tag . 注:构建镜像时,可以通过-f指定Dockerfile文件名, 如果不指定,则默认找上下文中名为"Dockerfile"的 文件作为Dockerfile;机制类似于docker中 《Docker上下文环境、Dockerfile与build命令》, 毕竟docker也算是对containerd的一层封装 |
nerdctl pull {镜像} | 拉取镜像 --insecure-registry:跳过ssh认证,允许走http 注: nerdctl pull -h 查看更多参数示例: nerdctl push --insecure-registry harbor.k8s.local/library/busybox:1.35.0
|
nerdctl push {镜像} | 推送镜像 --insecure-registry:跳过ssh认证,允许走http 注: nerdctl push -h 查看更多参数示例: nerdctl push --insecure-registry harbor.k8s.local/library/busybox:1.35.0
|
...... | ...... |
提示:containerd有命名空间的概念,不同命名空间的所有资源都是互相隔离的;所以如果不是直接使用的containerd,而是第三方集成containerd使用时,都需要指定命名空间,如:
- 当k8s集成containerd时,使用ctr或enrdctl处理容器给k8s使用时,需要指定命名空间为k8s的命名空间:--namespace k8s.io
- 当docker集成containerd时,使用ctr或enrdctl容器给docker使用时,需要指定命名空间为k8s的命名空间:--namespace moby
指令 | 说明 |
---|---|
ctr containers ls | 查看已创建的容器 |
ctr containers create {镜像} {容器名} | 创建并运行容器 |
ctr containers info {容器id/容器名} | 查看容器详情 |
ctr containers rm {容器id/容器名} | 删除容器 |
ctr containers rm $(ctr containers ls -q) | 删除所有容器 |
ctr tasks start {容器id/容器名} | 创建(与容器同名的)task -d:后台运行 示例: ctr tasks start -d my-redis-container
|
ctr tasks kill {task名称} | 停止task |
ctr tasks rm {task名称} | 删除task |
ctr tasks rm $(ctr tasks ls -q) | 删除所有task |
ctr tasks ls | 查看task状态 |
指令 | 说明 |
---|---|
nerdctl ps |
列出运行中的容器 -a:显示所有的容器,包括未运行的 -q:静默模式,只显示容器编号 |
nerdctl inspect {容器id/容器名} | 查看容器详情 |
nerdctl logs {容器id/容器名} | 查看容器日志 |
nerdctl logs -f {容器id/容器名} | 实时查看容器日志 |
nerdctl logs -f {容器id/容器名} >> tmp.log | 将日志输出到文件(前台进行) |
nerdctl logs -f {容器id/容器名} >> tmp.log & | 将日志输出到文件(后台进行) |
nerdctl run {参数} {镜像} |
创建并启动容器 示例: nerdctl run -d --name=jd-nginx -p 9527:80 --mount type=bind,source=/usr/local/web/,destination=/usr/share/nginx/html/ nginx:latest -d:将容器放入后台运行 -p: 为容器配置端口映射,{宿主机端口}:{容器端口} -name: 为容器指定名称 -m(或-memory): 设置内存的使用限额,如:-m100M,-m200G --memory-swap: 设置内存+swap的使用限额,如:--memory-swap=300M -restart:指定容器退出时是否重启 --mount: 绑定挂载 --mount type=bind,source={宿主机中的目录},destination={容器中的目录} 更多参数可输入 nerdctl --help 进行查看 |
nerdctl exec -it {容器id/容器名} bash(或:nerdctl exec -it {容器id/容器名} sh) |
进入容器 注:shell类型有很多种,但是sh类型的shell是 最基础的,所以大部分镜像都支持,而bash 类型的shell并不是基础的,所以有的精简版 的镜像,是不支持bash进入的 |
ctr + d(或输入exit回车) | 退出容器 |
nerdctl start {容器id/容器名} | 启动已有容器 |
nerdctl stop {容器id/容器名} | 停止容器 |
nerdctl rm {容器id/容器名} | 删除容器 |
nerdctl stop $(nerdctl ps -a -q) | 停止所有的容器 |
nerdctl rm $(nerdctl ps -a -q) | 删除所有容器 |
nerdctl cp 容器id(或容器name):要复制的文件全路径文件(夹)名 要复制到Linux上的文件夹位置 |
复制指定容器ID(或指定容器名)的容器中的指定文件到 Linux下的指定位置 如: nerdctl cp 4b3d1c56a7e7:/docker-entrypoint.sh /root/
|
nerdctl cp Linux上要复制的文件(夹)全路径文件名 容器id(或容器name):要复制到Docker中的文件夹位置 |
复制Linux下制定文件到指定容器ID(或指定容器名)的容器中的指定路径下 如: nerdctl cp /tmp/yum.log 4b3d1c56a7e7:/root/
|
...... | ...... |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。