kubernetes 和 docker 中 Cgroup 限制 CPU 的工作原理

System 

CPU CgroupCgroups 是对指定进程做计算机资源限制的,CPU Cgroup 是 Cgroups 其中的一个 Cgroups 子系统,它是用来限制进程的 CPU 使用的。对于进程的 CPU 使用,我们知道它只包含两部分:一个是用户态(top命令中的 us 和 ni);还有一部分是内核态(top 命令中的 sy)。至于其他状态(top 命令中的 wa、hi、si),这些 I/O 或者中

使用 docker 搭建 gitlab


此文档使用 docker 搭建 gitlab-ce:15.11.4版本。如果不是使用gitlab镜像自带的PostgreSQL数据库,那么就需要手动创建数据库表:create user gitlab;alter user gitlab password '123456';create database gitlab;alter database gitlab owner to gi

Docker使用代理拉取镜像

Docker 

前言 一些镜像源(比如:registry.k8s.io、k8s.gcr.io等)由于某种原因无法下载的情况下,可以在Docker中配置代理来拉取。 解决方法 查看docker的systemd.service的配置文件位置: 执行systemctl status docker.service命令来查看

docker中的gosu和su-exec工具

Docker 

volume的权限问题在Docker中,需要把host的目录挂载到container中作为volume使用时,往往会发生文件权限问题。 常见的现象是,container对该路径并无写权限,以致其中服务的各种千奇百怪的问题。导致这类问题的原因,是container内外的UID不同。 比如,host当前使用docker的用户UID是1000(这是默认第一个用户的UID)。 如果container内的U

docker网络解析不稳定

Docker 

新创建的容器,可能在容器中还没有缓存到需要的DNS缓存,就会造成部分网络解析不通。可以使用以下两种方法解决此问题: 方法一,添加host: 在docker 命令行中: --add-host='api.embbnux.com:10.98.10.98' 在 docker-compose 中添加: e

docker容器的health健康状态检查

Docker 

Docker 原生健康检查能力自 1.12 版本之后,Docker 引入了原生的健康检查实现。对于容器而言,最简单的健康检查是进程级的健康检查,即检验进程是否存活。Docker Daemon会自动监控容器中的PID1进程,如果docker run命令中指明了restart policy,可以根据策略自动重启已结束的容器。在很多实际场景下,仅使用进程级健康检查机制还远远不够。比如,容器进程虽然依旧运

alpine 和 Debian 镜像更改源,及安装软件并删除缓存

Docker 

alpine 和 Debian 镜像更改源,及安装软件并删除缓存:alpine:sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories && \ apk update && \ apk add --no-cache gcc Debian:se

Flannel实现Docker容器多主机通信

Docker 

flannel网络概述flannel 是 CoreOS 开发的容器网络解决方案。flannel 为每个 host 分配一个 subnet(子网),容器从此 subnet 中分配 IP,这些 IP 可以在主机间路由,容器间无需 NAT 和 port mapping(端口映射) 就可以跨主机通信。flannel的作用因为flannel实现跨主机的子网通信是通过主机中的dr0网卡进行通信的,由flann

Python Docker 镜像的选择


问题:Python Docker 镜像的种类比较多,以3.6.15版本为例就有10个选择。那具体应该如何选?版本区别:通过python Tags | Docker Hub查看信息,整理后如下表(以linux/386系统为例):TAGOS/ARCHCOMPRESSED SIZEpython:3.6.15-slim-busterlinux/38640.89 MBpython:3.6.15-slim-b

docker版mysql:5.7.34 免密码使用mysqldump备份


概述环境:docker数据库版本:mysql 5.7.34目的:每天定时把一个库的数据备份到本机里。容器名称:mysql备份目录:/data/backup由于mysqldump的时候会要求输入密码,无法做到自动备份。本案例通过docker的exec执行容器命令的方式创建login-path和实现自动备份。1.创建login-path创建方法如下:docker exec -it mysql mysq