Docker container secure

docker security

https://docs.docker.com/engine/security/

docker security 总的来说,一个是使用了 kernel namespace 技术,为每个 container 创建了 process, network 等 namepsace,使得多个 container 不会有很大的相互影响

另外一个方面是使用了 control groups 技术,用于限制 container 所使用的各类资源

ensure that each container gets its fair share of memory, CPU, disk I/O

简单理解,比如 cpu 资源,cgroup 用于避免某个 container 不当使用(或者恶意 or 无意代码 bug)cpu,导致其他 container 没法正常使用 cpu 的场景

container root user

https://docs.docker.com/engine/security/userns-remap/

container 中不建议使用 root 用户执行进程,很大部分原因因为容器内的 uid gid 会映射到 host 上,举个例子,一旦容器内的进程逃逸到 host 上,那么它也有 root 用户的权限

虽然说容器内的进程逃逸,是很严重的安全问题,docker 社区会第一时间修复