Containerd鏡像構(gòu)建

前言

在 Kubernetes(K8s)環(huán)境中,containerd 是更輕量、更符合標(biāo)準(zhǔn)的容器運行時(CRI),而 Docker 已被廢棄(從 K8s v1.24 起不再默認支持),
以下是 純 containerd 方式 構(gòu)建并運行 Nginx 鏡像的完整流程

1.二進制安裝nerdctl

https://github.com/containerd/nerdctl

github

##  解壓
[root@uos ~]# tar Cxzvvf /usr/local nerdctl-full-2.1.3-linux-amd64.tar.gz

## 配置service
[root@uos lib]# cd systemd/system/
[root@uos system]# ll
總用量 12
-rw-r--r-- 1 root root 1309  7月  8 13:53 buildkit.service
-rw-r--r-- 1 root root 1248  7月  8 13:51 containerd.service
-rw-r--r-- 1 root root  312  7月  8 13:53 stargz-snapshotter.service
[root@uos system]# pwd
/usr/local/lib/systemd/system
[root@uos system]# cp buildkit.service /usr/lib/systemd/system/

## 配置buildkitd.toml
[root@uos ~]# cat /etc/buildkit/buildkitd.toml
[worker.containerd]
  enabled = true
  namespace = "k8s.io"  # 與 Kubernetes 一致
[registry]
  # Docker Hub 鏡像加速(替換為你的鏡像源)
  [registry."docker.io"]
    mirrors = ["https://docker.m.daocloud.io","https://hub.rat.dev"]

## 配置nerdctl.toml
[root@uos ~]# cat /etc/nerdctl/nerdctl.toml
namespace = "k8s.io"  # 強制所有命令默認使用 k8s.io

2. 編寫Dockerfile(與 Docker 兼容)

[root@uos ~]# cat Dockerfile
# 使用官方 Nginx 鏡像(基于 Alpine 更輕量)
FROM nginx:alpine

# 刪除默認的 Nginx 歡迎頁
RUN rm -rf /usr/share/nginx/html/*

# 復(fù)制靜態(tài)文件到容器
COPY index.html /usr/share/nginx/html/

# 暴露 80 端口
EXPOSE 80

# 啟動 Nginx(前臺運行)
CMD ["nginx", "-g", "daemon off;"]

3. 制作鏡像

# 構(gòu)建鏡像
nerdctl build -t my-nginx:latest .

# 查看鏡像
nerdctl images
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容