加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Containerd 简介

发布时间:2020-12-16 03:57:14 所属栏目:安全 来源:网络整理
导读:Containerd 是一个工业级标准的容器运行时,它强调简单性、健壮性和可移植性。Containerd 可以在宿主机中管理完整的容器生命周期:容器镜像的传输和存储、容器的执行和管理、存储和网络等。 详细点说,Containerd 负责干下面这些事情: Containerd 被设计成

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

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

Containerd 被设计成嵌入到一个更大的系统中,而不是直接由开发人员或终端用户使用。所以 containerd 具有宏大的愿景(此图来自互联网):

$ -C /usr/local -xf containerd-..linux-amd64..gz

$ /etc/> /etc/containerd/config.toml

$ /lib/systemd/system/containerd.service

[Unit] Description=containerd container runtime Documentation=https://containerd.io After=network.target

[Service]
ExecStartPre=/sbin/modprobe overlay
ExecStart=/usr/local/bin/containerd
Delegate=yes
KillMode=process
LimitNOFILE=1048576

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

[Install]
WantedBy=multi-user.target

$ systemctl daemon- systemctl status containerd.service

import (
<span style="color: #800000">"<span style="color: #800000">log<span style="color: #800000">"
<span style="color: #800000">"<span style="color: #800000">github.com/containerd/containerd<span style="color: #800000">"<span style="color: #000000">
)

func main() {
<span style="color: #0000ff">if err := redisExample(); err !=<span style="color: #000000"> nil {
log.Fatal(err)
}
}

func redisExample() error {
client,err := containerd.New(<span style="color: #800000">"<span style="color: #800000">/run/containerd/containerd.sock<span style="color: #800000">"<span style="color: #000000">)
<span style="color: #0000ff">if err !=<span style="color: #000000"> nil {
<span style="color: #0000ff">return<span style="color: #000000"> err
}
defer client.Close()
<span style="color: #0000ff">return<span style="color: #000000"> nil
}

ctx := namespaces.WithNamespace(context.Background(),)

image,err := client.Pull(ctx, err !=

container,err := err !=

task,err := err !=

time.Sleep( *<span style="color: #0000ff">if err := task.Kill(ctx,syscall.SIGTERM); err !=<span style="color: #000000"> nil {
<span style="color: #0000ff">return
<span style="color: #000000"> err
}

status := <-<span style="color: #000000">exitStatusC
code,exitedAt,err :=<span style="color: #000000"> status.Result()
<span style="color: #0000ff">if err !=<span style="color: #000000"> nil {
<span style="color: #0000ff">return<span style="color: #000000"> err
}
fmt.Printf(<span style="color: #800000">"<span style="color: #800000">redis-server exited with status: %dn<span style="color: #800000">",code)

status,err := task.Delete(ctx)

/main

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读