主要内容
- Docker 原理
- Docker 使用
- Dockerfile 语法
- Docker compose
- K8s
Docker 原理
- DOCKER基础技术:LINUX NAMESPACE(上)
- DOCKER基础技术:LINUX NAMESPACE(下)
- DOCKER基础技术:LINUX CGROUP
- DOCKER基础技术:AUFS
- DOCKER基础技术:DEVICEMAPPER
- 跟着陈皓学习 Docker 基础原理
- 延申知识点
- 私有 docker-registry 的搭建
Dockerfile
- Dockerfile最佳实践
- 如何制作精简的 docker image (瘦容器)
- image 大小对比
- Distroless (2 MiB) < Alpine (5 MiB) < debian (124 MiB)
- 个人建议
- 开发用胖容器(All in One),线上用瘦容器
- image 大小对比
- 如何让 Dockerfile 缓存经常有效
- 编写具有生产价值的 Docker 镜像的 Dockerfile 最佳实践
- Run as a non-root user
- Do not use latest, pin your image tags
- 固定版本
- Use tini as your ENTRYPOINT
- docker 最新版已支持
--init
参数 - 如果 K8s 不是使用 docker 容器,则建议继续使用 tini
- docker 最新版已支持
- Only store arguments in CMD
Docker compose
- 最新版 docker 已经集成
docker compose
子命令 - https://docs.docker.com/compose/gettingstarted/
- 个人环境建议采用挂载本地目录的方式,毕竟 volume 的内容不方便本地查看
有趣的 Docker 项目
- ReDroid (Remote-Android) 是一个多架构、支持 GPU 的 Android 云端解决方案,适用于云游戏、虚拟电话、自动化测试等。
- docker-deepin 把 QQ 和微信放在 Docker 里运行,原理还是基于 Wine 的,使用 Docker 封装能比较好的解决依赖的问题。
- Docker-OSX 在 Docker 中运行 macOS 虚拟机。
- 其他好玩服务