1 容器与云计算
Docker 目前已经得到了众多公有云平台的支持,并成为除虚拟机之外的核心云业务
与容器相关的云计算主要分为两种类型:
- 传统的 IaaS 服务商提供对容器相关的服务,包括镜像下载、容器托管等
- 直接基于容器技术对外提供容器云服务,即 Container as a Service(CaaS)
Docker 技术的出现自身就极大推动了云计算行业的发展:
- 更快速的持续交付和部署能力;更丰富的应用开发和部署场景
- 利用内核级虚拟化,对公有云中服务器资源进行更加高效地利用
- 利用公有云和 Docker 的特性更加方便的迁移和扩展应用
2 镜像与操作系统
<code>BusyBox</code> 是一个集成了一百多个最常用 Linux 命令和工具(如 cat
、echo
、grep
、mount
、telnet
等)的精简工具箱,它只需要几 MB 的大小,很方便进行各种快速验证,被誉为“Linux 系统的瑞士军刀”
<code>Alpine</code> 操作系统是一个面向安全的轻型 Linux
发行版。Alpine
采用了 musl libc
和 busybox
以减小系统的体积和运行时资源消耗,但功能上比 busybox
又完善的多,因此得到开源社区越来越多的青睐
Alpine
由非商业组织维护的,支持广泛场景的Linux
发行版Alpine
还提供了自己的包管理工具apk
,可以直接查询和安装各种软件Alpine
的镜像容量非常小,仅仅只有 5 MB 左右(对比Ubuntu
系列镜像接近200 MB
)- 目前 Docker 官方已开始推荐使用
Alpine
替代之前的Ubuntu
做为基础镜像环境
<code>Debian</code> 和 <code>Ubuntu</code> 都是目前较为流行的Debian 系的服务器操作系统,十分适合研发场景
<code>CentOS</code> 和 <code>Fedora</code> 都是基于 Redhat
的常见 Linux 分支。CentOS
是目前企业级服务器的常用操作系统;Fedora
则主要面向个人桌面用户
官方镜像的特点:
- 体积小,只包含基本的组件;精简的系统有利于安全、稳定和高效的运行,也适合个性化定制
- 出于安全考虑,官方镜像都没有安装 SSH 服务,无法通过用户名和密码直接登录到容器中
除了官方的镜像外,在 Docker Hub
上还有许多第三方组织或个人上传的 Docker 镜像
3 持续集成与部署
持续集成(Continuous integration,CI) 是一种软件开发实践,每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
持续部署(continuous deployment,CD) 是通过自动化的构建、测试和部署循环来快速交付高质量的产品
GitHub Actions 是 GitHub 推出的一款 CI/CD 工具,更多细节可查阅官方文档
<code>Drone</code>是基于 Docker
的 CI/CD
工具
drone
的所有编译、测试的流程都在容器中进行- 开发者只需在项目中包含
.drone.yml
文件,将代码推送到 git 仓库 Drone
就能够自动化的进行编译、测试、发布- 更多资料:Drone 文档、Drone 示例
4 其他补充资料
热门镜像介绍
- Nginx 是开源的高效的 Web 服务器实现,支持 HTTP/HTTPS/SMTP/POP3/IMAP 等协议
- PHP(Hypertext Preprocessor 超文本预处理器的字母缩写)是一种被广泛应用的开放源代码的多用途脚本语言,它可嵌入到 HTML 中,尤其适合 web 开发
- Node.js 是基于 JavaScript 的可扩展服务端和网络软件开发平台
- MySQL 是开源的关系数据库实现
- WordPress 是开源的 Blog 和内容管理系统框架,它基于 PHP 和 MySQL
- MongoDB 是开源的 NoSQL 数据库实现
- Redis 是开源的内存 Key-Value 数据库实现
- MinIO 是一个基于 Apache License v2.0 开源协议的对象存储服务。它兼容亚马逊 S3 云存储服务接口,非常适合于存储大容量非结构化的数据
官方网站
- Docker 官方主页:https://www.docker.com
- Docker 官方博客:https://www.docker.com/blog/
- Docker 官方文档:https://docs.docker.com/
- Docker Hub:https://hub.docker.com
- Docker 的源代码仓库:https://github.com/moby/moby
- Docker 路线图 https://github.com/docker/roadmap/projects
- Docker 发布版本历史:https://docs.docker.com/release-notes/
- Docker 常见问题:https://docs.docker.com/engine/faq/
- Docker 远端应用 API:https://docs.docker.com/develop/sdk/
技术交流
- Docker 邮件列表: https://groups.google.com/forum/#!forum/docker-user
- Docker 的 IRC 频道:https://chat.freenode.net#docker
- Docker 的 Twitter 主页:https://twitter.com/docker
- Docker 的 StackOverflow 问答主页:https://stackoverflow.com/search?q=docker