Web 服务和应用是目前互联网技术领域的热门技术。重点介绍如何使用 Docker 来运行常见的 Web 服务器(包括 Apache、Nginx、Tomcat 等),以及一些常见应用(包括 LAMP 和 CI/CD)。
包括 Web 服务在内的中间件领域十分适合引入容器技术:
- 中间件服务器是除数据库服务器外的主要计算节点,很容易成为性能瓶颈,所以通常需要大批量部署,而 Docker 对于批量部署有着许多先天的优势;
- 中间件服务器结构清晰,在剥离了配置文件、日志、代码目录之后,容器几乎可以处于零增长状态,这使得容器的迁移更加方便;
- 中间服务器很容易实现集群,在使用硬件的 F5、软件的 Nginx 等负载均衡后,中间件服务器集群变得非常容易。
需要注意数据的持久化。对于程序代码、资源目录、日志、数据库、文件等需要实时更新和保存的数据,一定要启动数据持久化机制,避免发生数据丢失。
Apache
Apache 是一个高稳定性的、商业级别的开源 Web 服务器,是目前世界使用排名第一的 Web 服务器软件。
在使用 Dockerfile 创建镜像时,会继承父镜像的开放端口,但却不会继承启动命令。因此,需要在 run.sh 脚本中添加启动 sshd 的服务的命令。