Docker
基于 Kubernetes 的 Jenkins 服务也可以去 Docker 了
· ☕ 6 分钟
从原理上看,在 Kubernetes 集群中,Jenkins 都可以使用 Podman 进行镜像构建,本文主要以 Containerd 为例。 1. 去 Docker 给 CICD 带来新的挑战 在 CICD 场景下, 我们经常需要在流水线中构建和推送镜像。 在之前的文档 《在 Kubernetes 上动态创建 Jenkins Slave》 中, 我描述了通过挂载 /var/run/docker.sock 文件, 允许在 Docker 驱动的 Kubernetes

如何在主机上调试容器、在容器中操作主机
· ☕ 6 分钟
1. 一个奇怪的需求 老板有个奇怪的需求,通过一个 kubeconfig 文件,获取主机的各种状态信息,比如进程列表、进程状态等。 第一反应就是,老板是不是不懂容器,容器怎么能这样玩,这样玩还要什么容器,内心万马奔腾。 直到最近遇到了一个命令行工具,才发现原来小丑是我自己

如何绕过 DockerHub 拉取镜像限制
· ☕ 3 分钟
1. DockerHub 限制 终究还是绕不过下面这个报错: 1 Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit DockerHub 从 2020 年 11 月 2 日,正式开始限制非付费用户的拉取频率: 匿名用户,每 6 小时只允许 pull 100 次 已登录用户,每 6 小时只允许 pull 200 次 好吧,正常情况下,到这里就友尽了,不让用就不

如何在 Docker 中使用 Docker
· ☕ 3 分钟
1. 典型适用场景 在 CI 中,通常会有一个 CI Engine 负责解析流程,控制整个构建过程,而将真正的构建交给 Agent 去完成。例如,Jenkins 、GitLab 均是如此。 如下图, 连接 CI Engine 的 Agent, 种类很多。这是为了满足不同项目对构建环境的要求。 同时 Agent 是动态的,构建时才需要,

多架构下的 Docker 镜像
· ☕ 3 分钟
1. 开启 Docker 的 experimental 特性 这里先开启 Docker 的 experimental 特性,方便下文使用相关命令。 编辑文件 vim ~/.docker/config.json ,增加如下内容: 1 2 3 4 { "experimental": "enabled", "debug": true } 注意,这里不是 /etc/docker/daemon.json 文件,也不需要重启 Docker 。 2. Docker 镜像 从 Docker 1.10 、 Registry 2.3 开始,Docker 引入了 manifest 用于描述镜像的元数据。 2.1 Dockerfile 如何转换成镜像 如上图,