docker之containerd简述 修改containerd目录默认路径

containerd简述

containerd是容器虚拟化技术,从docker中剥离出来,形成开放容器接口(OCI)标准的一部分。
在这里插入图片描述

docker对容器的管理和操作基本都是通过containerd完成的。Containerd 是一个工业级标准的容器运行时,它强调简单性、健壮性和可移植性。Containerd 可以在宿主机中管理完整的容器生命周期:容器镜像的传输和存储、容器的执行和管理、存储和网络等。详细点说,Containerd 负责干下面这些事情:

•管理容器的生命周期(从创建容器到销毁容器)

•拉取/推送容器镜像

•存储管理(管理镜像及容器数据的存储)

•调用 runC 运行容器(与 runC 等容器运行时交互)

•管理容器网络接口及网络

注意:Containerd 被设计成嵌入到一个更大的系统中,而不是直接由开发人员或终端用户使用。

我们可以从下面几点来理解为什么需要独立的 containerd:

•继续从整体 docker 引擎中分离出的项目(开源项目的思路)

•可以被 Kubernets CRI 等项目使用(通用化)

•为广泛的行业合作打下基础(就像 runC 一样)

docker安装后containerd默认已安装,containerd包含如下命令组件:

•containerd:高性能容器运行时。

•ctr:containerd的命令行客户端。

•runc:运行容器的命令行工具。

docker、containerd、docker-shim、runC关系:

docker:docker本身而言,包括了docker client和dockerd,dockerd实属是对容器相关操作的api的最上层封装,直接面向操作用户。

containerd:dockerd实际真实调用的还是containerd的api接口(rpc方式实现),containerd是dockerd和runC之间的一个中间交流组件。

docker-shim:一个真实运行容器的载体,每启动一个容器都会起一个新的docker-shim的进程。它通过指定三个参数:容器ID、boundle目录(containerd对应某个容器生成目录)、运行时二进制(默认是runC)来调用runC的api创建一个容器。

runC:一个命令行工具端,根据OCI的标准来创建和运行容器。

Containerd应用
containerd的默认配置文件为/etc/containerd/config.toml,可通过命令:
containerd config default ##查看默认配置

containerd目录默认路径修改: //示范把/opt下的containerd目录移到/opt/docker/
:~$ sudo containerd config default > config_new.toml
//先在~目录下面打印生成一份默认配置文件
:~$ sudo mv /etc/containerd/config.toml /etc/containerd/config_bak20201126.toml
//把原先的config备份
:~$ sudo mv configf_new.toml /etc/containerd/config.toml
//把default生成的文件移到默认配置文件路径
:~$ sudo vi /etc/containerd/config.toml

...
    [plugins."io.containerd.grpc.v1.cri".registry]
      [plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          endpoint = ["https://registry-1.docker.io"]
    [plugins."io.containerd.grpc.v1.cri".x509_key_pair_streaming]
      tls_cert_file = ""
      tls_key_file = ""
  [plugins."io.containerd.internal.v1.opt"]
    path = "/opt/docker/containerd"       //修改此处即可
  [plugins."io.containerd.internal.v1.restart"]
    interval = "10s"
  [plugins."io.containerd.metadata.v1.bolt"]
    content_sharing_policy = "shared"
  [plugins."io.containerd.monitor.v1.cgroups"]
    no_prometheus = false
  [plugins."io.containerd.runtime.v1.linux"]
    shim = "containerd-shim"
    runtime = "runc"
    runtime_root = ""
    no_shim = false
    shim_debug = false
  [plugins."io.containerd.runtime.v2.task"]
    platforms = ["linux/amd64"]
  [plugins."io.containerd.service.v1.diff-service"]
    default = ["walking"]
  [plugins."io.containerd.snapshotter.v1.devmapper"]
    root_path = ""
    pool_name = ""
    base_image_size = ""

:~$ sudo systemctl restart containerd.service //重启服务,修改成功

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
审计Docker文件和目录可以帮助我们确保Docker容器的安全性和稳定性。下面是审计Docker文件和目录`/usr/bin/docker-containerd`的步骤: 1. 确认Docker已经安装并运行。可以使用`docker version`命令来检查Docker的版本和状态。 2. 查看`/usr/bin/docker-containerd`文件的权限和所有者。可以使用`ls -l /usr/bin/docker-containerd`命令来查看。 3. 检查`/usr/bin/docker-containerd`文件是否被修改过。可以使用`md5sum /usr/bin/docker-containerd`命令来检查文件的MD5值是否与原始文件的MD5值匹配。 4. 检查`/usr/bin/docker-containerd`文件是否被替换为恶意软件。可以使用`file /usr/bin/docker-containerd`命令来检查文件类型是否正确。 5. 检查`/usr/bin/docker-containerd`文件是否有安全漏洞。可以使用`docker scan`命令来扫描Docker容器中的漏洞。 6. 检查`/usr/bin/docker-containerd`文件的依赖关系。可以使用`ldd /usr/bin/docker-containerd`命令来检查文件的依赖关系是否正确。 7. 检查`/usr/bin/docker-containerd`文件是否有运行时错误。可以使用`strace /usr/bin/docker-containerd`命令来跟踪文件的系统调用并检查是否有错误。 8. 检查`/usr/bin/docker-containerd`目录的权限和所有者。可以使用`ls -ld /usr/bin/docker-containerd`命令来查看。 总之,审计Docker文件和目录可以帮助我们确保Docker容器的安全性和稳定性,并帮助我们发现和解决潜在的安全问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值