【企业运维实践】丢弃手中的docker build ,使用Kaniko直接在K8S集群或Containerd环境构建推送容器镜像...

Kaniko是一个无需Docker守护进程即可在Kubernetes和Containerd环境中构建容器镜像的工具。它在用户空间中执行Dockerfile指令,支持在K8S、Containerd和Docker中构建并发布镜像。文章介绍了Kaniko的工作原理、使用场景、构建上下文和缓存机制,并提供了在K8S、Containerd和Docker中使用Kaniko的实践操作步骤。
摘要由CSDN通过智能技术生成

关注「WeiyiGeek」公众号

 

设为「特别关注」每天带你玩转网络安全运维、应用开发、物联网IOT学习!

b905178a8e850da3b9fe46f5e84890c9.jpeg


本章目录:

  • 0x00 前言简述

    • 什么是Kaniko?

    • 为啥用Kaniko?

    • Kaniko 是如何工作的?

    • Kaniko 已知功能问题

    • kaniko 构建上下文

    • kaniko 缓存构建

    • 快速介绍

  • 0x01 部署使用

    • 环境依赖

    • 小试牛刀之在Kubernetes集群中构建并发布镜像

    • 小试牛刀之在Containerd.io中构建并发布镜像

当你使用 `nerdctl build . -t` 命令构建了一个 Docker 镜像之后,这个镜像并没有立即在 Docker 容器中运行,它实际上是创建了一个新的镜像文件。如果你想直接Docker 中运行这个镜像,你需要按照以下步骤操作: 1. **登录到Docker hub或私有Registry**(如果镜像需要推送到仓库): 如果你要将镜像上传到公共仓库如 Docker Hub 或者私有 Registry,首先使用 `nerdcrl push <repository>[:tag]` 命令推送。 2. **拉取本地镜像**(如果你已经上传到了远程): 使用 `docker pull <image-name>` 或 `docker run -it <image-name>` 来从 Docker Hub 或本地注册表拉取镜像。如果没有显式指定标签,默认会拉取最新的版本。 3. **运行镜像作为容器**: 对于直接在本地运行,可以使用 `docker run` 命令加上 `-it` 参数以进入交互模式,示例如下: ``` docker run -it <image-name> ``` 4. **启动容器并映射端口**(如果需要外部访问应用): 如果你想让应用的服务监听特定端口,可以在 `docker run` 后面添加 `-p <host-port>:<container-port>` 参数。 5. **设置环境变量和数据卷**: 可以通过 `--env` 和 `--volume` 标志来传递环境变量和挂载数据卷给容器。 6. **监控和管理容器**: 如果需要持久化运行,可以使用 `docker run -d` 将容器设为后台运行 (`-d` 表示 detached,即无交互)。然后你可以用 `docker ps` 查看运行状态,`docker logs` 查看日志等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈工程师修炼指南

原创不易,赞赏鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值