这篇文章主要介绍“containerd怎么编译”,在日常操作中,相信很多人在containerd怎么编译问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”containerd怎么编译”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

我们提供的服务有:网站制作、成都网站设计、微信公众号开发、网站优化、网站认证、邹城ssl等。为千余家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的邹城网站制作公司
编译containerd/runc
- 任意公有云厂商购买一台虚拟机,绑fip(116.196.115.229) 
- 登录vm安装go,并设置GOROOT/GOPATH环境变量 
 [root@containerd bin]# wget https://dl.google.com/go/go1.12.5.linux-amd64.tar.gz
 [root@containerd bin]# tar -xvf go1.12.5.linux-amd64.tar.gz -C /usr/local- [root@containerd bin]# /usr/local/go/bin/go version - go version go1.12.5 linux/amd64 
 编辑/root/.bash_profile文件,添加如下设置后sourcePATH=$PATH:/usr/local/go/bin
 export PATH
 export GOROOT=/usr/local/go/
 export GOPATH=/root/go[root@containerd ~]# source .bash_profile
- Build the development environment - [root@containerd ~]# go get github.com/containerd/containerd 
 [root@containerd ~]# wget -c https://github.com/google/protobuf/releases/download/v3.5.0/protoc-3.5.0-linux-x86_64.zip
 [root@containerd ~]# unzip protoc-3.5.0-linux-x86_64.zip -d /usr/local
 [root@containerd ~]# yum install -y btrfs-progs-devel libseccomp-devel
- 编译runc 
 [root@containerd ~]# go get github.com/opencontainers/runc[root@containerd containerd]# cd $GOPATH/src/github.com/opencontainers/runc- [root@containerd runc]# make - go build -buildmode=pie -ldflags "-X main.gitCommit="eb4aeed24ffbf8e2d740fafea39d91faa0ee84d0"> - [root@containerd runc]# make install - install -D -m0755 runc /usr/local/sbin/runc - [root@containerd runc]# ls -rtl /usr/local/sbin - total 11752 - -rwxr-xr-x 1 root root 12031832 May 10 17:33 runc - [root@containerd runc]# runc --version - runc version 1.0.0-rc8+dev - commit: eb4aeed24ffbf8e2d740fafea39d91faa0ee84d0 - spec: 1.0.1-dev 
- 编译containerd 
 [root@containerd runc]# cd $GOPATH/src/github.com/containerd/containerd
 [root@containerd containerd]# make
 + bin/ctr
 + bin/containerd
 + bin/containerd-stress
 + bin/containerd-shim
 + bin/containerd-shim-runc-v1
 + bin/containerd-shim-runc-v2
 + binaries
 [root@containerd containerd]# make install
 + install bin/ctr bin/containerd bin/containerd-stress bin/containerd-shim bin/containerd-shim-runc-v1 bin/containerd-shim-runc-v2- [root@containerd containerd]# ls -rtl /usr/local/bin - total 133152 - -rwxr-x--- 1 root root 4433736 Nov 14 2017 protoc - -rwxr-xr-x 1 root root 29709728 May 10 17:35 ctr - -rwxr-xr-x 1 root root 51831136 May 10 17:35 containerd - -rwxr-xr-x 1 root root 25094688 May 10 17:35 containerd-stress - -rwxr-xr-x 1 root root 7302016 May 10 17:35 containerd-shim - -rwxr-xr-x 1 root root 8980256 May 10 17:35 containerd-shim-runc-v1 - -rwxr-xr-x 1 root root 8980320 May 10 17:35 containerd-shim-runc-v2 
 [root@containerd containerd]# containerd --version
 containerd github.com/containerd/containerd v1.2.0-551-g57fbb16 57fbb16234fa6c8a61e5e907a4148ea3b05bce1d
- containerd以daemon方式运行 
- 准备containered.service文件 
 [root@containerd ~]# cat /usr/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
 # 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=1048576
 # Comment TasksMax if your systemd version does not supports it.
 # Only systemd 226 and above support this version.
 TasksMax=infinity
 [Install]
 WantedBy=multi-user.target
- enable设置开机自启动 
 [root@containerd system]# systemctl enable containerd.service
 Created symlink from /etc/systemd/system/multi-user.target.wants/containerd.service to /usr/lib/systemd/system/containerd.service.
- 准备containerd配置文件 - [root@containerd ~]# cat /etc/containerd/config.toml - subreaper = true - oom_score = -999 - [debug] - level = "debug" - [metrics] - address = "127.0.0.1:1338" - [plugins.linux] - runtime = "runc" - shim_debug = true 
- 启动containerd服务 
 [root@containerd system]# systemctl start containerd.service
 [root@containerd system]# systemctl status containerd.service
 ● containerd.service - containerd container runtime
 Loaded: loaded (/usr/lib/systemd/system/containerd.service; enabled; vendor preset: disabled)
 Active: active (running) since Fri 2019-05-10 17:55:35 CST; 4s ago
 Docs: https://containerd.io
 Process: 18319 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
 Main PID: 18321 (containerd)
 Tasks: 13
 Memory: 25.1M
 CGroup: /system.slice/containerd.service
 └─18321 /usr/local/bin/containerd
 May 10 17:55:35 containerd containerd[18321]: time="2019-05-10T17:55:35.396003271+08:00" level=error msg="Failed to load cni during init, please check CRI plugin status before ... cni config"
 May 10 17:55:35 containerd containerd[18321]: time="2019-05-10T17:55:35.396193437+08:00" level=info msg="loading plugin \"io.containerd.grpc.v1.introspection\"..." type=io.containerd.grpc.v1
 May 10 17:55:35 containerd containerd[18321]: time="2019-05-10T17:55:35.396280636+08:00" level=info msg="Start subscribing containerd event"
 May 10 17:55:35 containerd containerd[18321]: time="2019-05-10T17:55:35.396365663+08:00" level=info msg="Start recovering state"
 May 10 17:55:35 containerd containerd[18321]: time="2019-05-10T17:55:35.396383092+08:00" level=info msg=serving... address=/run/containerd/containerd.sock.ttrpc
 May 10 17:55:35 containerd containerd[18321]: time="2019-05-10T17:55:35.396415058+08:00" level=info msg=serving... address=/run/containerd/containerd.sock
 May 10 17:55:35 containerd containerd[18321]: time="2019-05-10T17:55:35.396427216+08:00" level=info msg="containerd successfully booted in 0.003786s"
 May 10 17:55:35 containerd containerd[18321]: time="2019-05-10T17:55:35.396435091+08:00" level=info msg="Start event monitor"
 May 10 17:55:35 containerd containerd[18321]: time="2019-05-10T17:55:35.396459564+08:00" level=info msg="Start snapshots syncer"
 May 10 17:55:35 containerd containerd[18321]: time="2019-05-10T17:55:35.396468105+08:00" level=info msg="Start streaming server"
 Hint: Some lines were ellipsized, use -l to show in full.
准备rootfs和spec
- 找另外一台安装了整套docker的机器(此处用本地oracle linux vm 10.12.162.67),制作测试所需的rootfs(bundle)文件 
- 创建 busybox/rootfs目录 
 [root@localhost ~]# mkdir -p busybox/rootfs
- 拉取busybox镜像 - [root@localhost ~]# docker pull busybox - Using default tag: latest - latest: Pulling from library/busybox - 53071b97a884: Pull complete - Digest: sha256:32f65f5aae307c171fc69ce52be3c8b09675164a610a88efa607449311186378 - Status: Downloaded newer image for busybox:latest 
- 创建docker - [root@localhost ~]# docker create --name tempbusybox busybox - 85b6e32db75da001669656b452a9a65fc2de7f1a9faac95c5aedf6de1127fa15 
- 导出rootfs和spec - [root@localhost ~]# docker export tempbusybox | tar -C busybox/rootfs -xf - - [root@localhost ~]# cd busybox/ && /usr/bin/docker-runc spec - [root@localhost busybox]# ls - config.json rootfs - [root@localhost busybox]# ls rootfs/ - bin dev etc home proc root sys tmp usr var 
- 将rootfs和spec 拷贝到containered测试节点 116.196.115.229 
 [root@localhost ~]# scp -r busybox/ root@116.196.115.229:/root
测试
- [root@containerd busybox]# cd /root/busybox 
- 利用containerd cli (/usr/local/bin/ctr)运行容器 
 [root@containerd busybox]# ctr run -t -d --rootfs rootfs busybox /bin/sh- [root@containerd busybox]# ctr container list - CONTAINER IMAGE RUNTIME - busybox - io.containerd.runtime.v1.linux - [root@containerd busybox]# ps -ef |grep container - root 9539 1 0 21:22 ? 00:00:03 /usr/local/bin/containerd - root 15285 9539 0 22:02 ? 00:00:00 containerd-shim -namespace default -workdir /var/lib/containerd/io.containerd.runtime.v1.linux/default/busybox -address /run/containerd/containerd.sock -containerd-binary /usr/local/bin/containerd -debug 
- 登录容器验证 - [root@containerd busybox]# ctr tasks list - TASK PID STATUS - busybox 15301 RUNNING - [root@containerd busybox]# ctr tasks exec -t --exec-id 15301 busybox /bin/sh - / # hostname - containerd - / # ip a - 1: lo: - mtu 65536 qdisc noqueue qlen 1 - link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 - inet 127.0.0.1/8 scope host lo - valid_lft forever preferred_lft forever - inet6 ::1/128 scope host - valid_lft forever preferred_lft forever 
- stop容器 
 [root@containerd busybox]# ctr tasks kill --signal 9 busybox- [root@containerd busybox]# ctr tasks list - TASK PID STATUS - busybox 15301 STOPPED 
- 删除容器 - [root@containerd busybox]# ctr container delete busybox - [root@containerd busybox]# ctr container list - CONTAINER IMAGE RUNTIME 
到此,关于“containerd怎么编译”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
网页题目:containerd怎么编译
路径分享:http://www.scyingshan.cn/article/jjdhsh.html

 建站
建站
 咨询
咨询 售后
售后
 建站咨询
建站咨询 
 