- buildkit-v0.11.4.linux-amd64.tar.gz
- nerdctl-1.2.1-linux-amd64.tar.gz
nerdctl 操作
实战:Containerd高级命令行工具nerdctl安装及使用
https://mdnice.com/writing/c57c45c557bf46b0835958134892abc4
k8s部署springboot应用 nerdctl构建
https://blog.csdn.net/wangxin_wangxin/article/details/128736157
nerdctl build 制作镜像
[root@k8s-master /]# nerdctl build -f dockerfile_company -t lyndon1107/company:latest .
[+] Building 11.6s (9/9)
[+] Building 11.7s (9/9) FINISHED
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build definition from dockerfile_company 0.0s
=> => transferring dockerfile: 560B 0.0s
=> [internal] load metadata for docker.io/library/centos:latest 2.1s
=> [auth] library/centos:pull token for registry-1.docker.io 0.0s
=> [1/3] FROM docker.io/library/centos:latest@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 0.0s
=> => resolve docker.io/library/centos:latest@sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 106B 0.0s
=> CACHED [2/3] ADD jdk-8u333-linux-x64.tar.gz /usr/local/ 0.0s
=> CACHED [3/3] ADD /v5-test-service-0.0.1-SNAPSHOT.jar /usr/local/ 0.0s
=> exporting to docker image format 9.3s
=> => exporting layers 0.0s
=> => exporting manifest sha256:83d08d938bbe766d5d2aa15022296543ff82deb8f1080f488385a8c4d268d75b 0.0s
=> => exporting config sha256:eb84a8b41b798c0afbeeb16be280f0b2dfd16c31f603133d014b4337d7389303 0.0s
=> => sending tarball 9.3s
Loaded image: docker.io/lyndon1107/company:latest
查看镜像
[root@k8s-master /]# nerdctl images
REPOSITORY TAG IMAGE ID CREATED PLATFORM SIZE BLOB SIZE
jenkins/jenkins lts 8656eb80548f 6 days ago linux/amd64 474.2 MiB 278.7 MiB
lyndon1107/company latest 83d08d938bbe 21 seconds ago linux/amd64 660.9 MiB 277.5 MiB
运行容器
[root@k8s-master /]# nerdctl run -d -p 8099:8099 --name company lyndon1107/company
WARN[0000] duplicate network name "cbr0", &netutil.NetworkConfig{NetworkConfigList:(*libcni.NetworkConfigList)(0xc0002ef4a0), NerdctlID:(*string)(nil), NerdctlLabels:(*map[string]string)(nil), File:"/etc/cni/net.d/10-flannel.conf"} will get superseded by &netutil.NetworkConfig{NetworkConfigList:(*libcni.NetworkConfigList)(0xc0002ef560), NerdctlID:(*string)(nil), NerdctlLabels:(*map[string]string)(nil), File:"/etc/cni/net.d/10-flannel.conflist"}
WARN[0000] duplicate network name "cbr0", &netutil.NetworkConfig{NetworkConfigList:(*libcni.NetworkConfigList)(0xc0002ef9e0), NerdctlID:(*string)(nil), NerdctlLabels:(*map[string]string)(nil), File:"/etc/cni/net.d/10-flannel.conf"} will get superseded by &netutil.NetworkConfig{NetworkConfigList:(*libcni.NetworkConfigList)(0xc0002efaa0), NerdctlID:(*string)(nil), NerdctlLabels:(*map[string]string)(nil), File:"/etc/cni/net.d/10-flannel.conflist"}
2fb70e42a8d5e8fe462c001e824d927132c84384ea353aaa18103e106da2ca09
查看容器
[root@k8s-master /]# nerdctl ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2fb70e42a8d5 docker.io/lyndon1107/company:latest "java -jar /usr/loca…" 2 minutes ago Up 0.0.0.0:8099->8099/tcp company
登录 访问服务
[root@k8s-master /]# nerdctl exec -it company bash
[root@2fb70e42a8d5 /]#
[root@2fb70e42a8d5 /]# exit
exit
[root@k8s-master /]# curl -X POST http://localhost:8099/test/queryList
{"success":true,"result":"SUCCESS","code":0,"msg":"成功","obj":""}
推送到仓库
[root@k8s-master /]# nerdctl push lyndon1107/company:latest
INFO[0000] pushing as a reduced-platform image (application/vnd.docker.distribution.manifest.v2+json, sha256:83d08d938bbe766d5d2aa15022296543ff82deb8f1080f488385a8c4d268d75b)
manifest-sha256:83d08d938bbe766d5d2aa15022296543ff82deb8f1080f488385a8c4d268d75b: done |++++++++++++++++++++++++++++++++++++++|
config-sha256:eb84a8b41b798c0afbeeb16be280f0b2dfd16c31f603133d014b4337d7389303: done |++++++++++++++++++++++++++++++++++++++|
elapsed: 363.2s total: 4.1 Ki (11.0 B/s)
nerdctl 安装
Containerd 官方推出了一个新的 CLI 叫 nerdctl。Containerd高级命令行工具nerdctl。
nerdctl 的目标并不是单纯地复制 docker 的功能,它还实现了docker 不具备的功能,例如延迟拉取镜像(lazy-pulling)、镜像加密(imgcrypt)等。
下载地址 https://developer.aliyun.com/article/1094835
# 下载nerdctl到指定目录
## -c 断点续传, -P 下载到指定目录
wget -c -P /usr/local/ https://github.com/containerd/nerdctl/releases/download/v1.2.1/nerdctl-1.2.1-linux-amd64.tar.gz
# 创建nerdctl对应bin目录
mkdir -p /usr/local/containerd/bin
# 解压nerdctl到指定路径
tar -xvf nerdctl-1.1.0-linux-amd64.tar.gz -C /usr/local/containerd/bin/
# 创建软链接
ln -s /usr/local/containerd/bin/nerdctl /usr/local/bin/nerdctl
# 查看是否安装成功
which nerdctl
------------------------------------------------------------
[root@k8s-master bin]# nerdctl --version
nerdctl version 1.2.1
[root@k8s-master bin]# nerdctl version
Client:
Version: v1.2.1
OS/Arch: linux/amd64
Git commit: a0bbfd75ba92bcb11ac6059bf4f6f4e50c6da0b8
buildctl:
Version: v0.11.4
GitCommit: 3abd1ef0c195cdc078d1657cb50f62a2cdc26f8f
Server:
containerd:
Version: 1.6.18
GitCommit: 2456e983eb9e37e47538f59ea18f2043c9a73640
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
------------------------------------------------------------
1、容器管理
nerdctl run # 运行容器
nerdctl exec # 进入容器
nerdctl ps #列出容器
nerdctl inspect #获取容器的详细信息。
nerdctl logs #获取容器日志
nerdctl stop #停止容器
nerdctl rm #删除容器
3、镜像管理
nerdctl images #镜像列表
nerdctl pull #拉取镜像
nerdctl push #推送镜像
nerdctl tag #镜像标签
nerdctl save #导出镜像
nerdctl rmi #删除镜像
nerdctl load #导入镜像
#镜像构建(安装buildkit)
nerdctl build -t 构建目录
#从 Dockerfile 构建镜像
nerdctl build #其实是使用了 buildctl 命令来构建镜像
# 构建镜像时不使用缓存(默认值:false)
nerdctl build --no-cache
nerdctl ns ls 查看名字空间,这和K8s的名字空间不是一回事,其中default就是containerd的默认名字空间,http://k8s.io是K8s的名字空间
#查看网络
[root@k8s-master /]# nerdctl network ls
NETWORK ID NAME FILE
cbr0 /etc/cni/net.d/10-flannel.conf
cbr0 /etc/cni/net.d/10-flannel.conflist
host
none
4683

被折叠的 条评论
为什么被折叠?



