1.Apache

官方提供了名为httpd的Apache镜像,可以作为基础web服务镜像

Dockerfile(安装apache2)

FROM httpd:2.4
COPY ./public-html /usr/local/apache2/htdocs/

2.Nginx

Nginx是一款功能强大的开源反向代理服务器,支持HTTP、HTTP、SMTP、POP3、IMAP等协议。它也可以作为负载均衡器、HTTP缓存或者Web服务器。Nginx一开始就专注于高并发和高性能的应用场景。它使用类BSD开源协议,支持Linux、BSD、Mac、Solaris、AIX等类Unix系统,同时也有windows移植版。

(1)使用官方镜像

docker run -d -p 80:80 --name webserver nginx

3.Tomcat

Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和Java Servlet Page(JSP)的支持。同时,它提供了作为Web服务器的一些特有功能,如Tomcat管理和控制台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,也可以当做一个单独的web服务器来使用。

4.Jetty

Jetty是一个优秀的开源Servlet容器,以其高效,小巧,可嵌入式等优点深得人心,它为基于Java的Web内容(如JSP和Servlet)提供运行环境。Jetty基于Java语言编写,它的API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化为一个对象,可以迅速为一些独立运行的Java应用提供Web服务。

相对于老牌的Tomcat,Jetty架构更合理,性能更优。尤其在启动速度上,让Tomcat望尘莫及。Jetty目前在官方提供了Jetty镜像,直接运行docker run指令即可:

docker run -d jetty

docker run -d -p 80:8080 -p 443:8443 jetty

使用宿主机的浏览器访问container-ip:8080,即可获得Jetty运行页面,由于当前没有内容,会提示错误信息。

5.LAMP

LAMP(Linux+Apache+MySQL+PHP)是目前流行的Web工具栈,其中包括:Linux操作系统,Apache网络服务器,MySQL数据库,Perl,PHP编程语言。其组成工具均是成熟的开源软件,被大量网站所采用。和Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点;和微软的.NET架构相比,LAMP更具通用、跨平台、高性能、低价格等优势。因此LAMP无论是在性能、质量还是价格方面都是企业搭建网站的首选平台。

注意:现在也有人用Nginx替换Apache,称为LNMP,但并不影响整个框架的选型原则,是彼此十分类似的技术栈。

1.使用linode/lamp镜像

首先执行docker run 指令直接运行LAMP,同时社区也提供了十分成熟的linode/lamp和tutum/lamp镜像。下面介绍两种方法:

docker run -p 80:80 -t -i linode/lamp /bin/bash

在容器中执行service apache2 start启动apache

2.使用tutum/lamp镜像

docker run -d -p 80:80 -p 3306:3306 tutum/lamp

启动成功访问Demo界面

6.WordPress

WordPress是风靡全球的开源内容管理系统,是博客、企业官网、产品首页等内容相关平台的主流实现方案之一。类似项目还有Drupal、Joomla、Typo3等。

WordPress基于PHP和MySQL,架构设计简单明了,支持主题,插件和各种功能模块。更重要的是WordPress拥有庞大的社区,在线资源非常丰富,并且在各大网络空间商和云平台中受到广泛支持。

(1)使用官方镜像

docker pull wordpress

(2)使用Compose搭建WordPress

新建docker-compose.yml文件:

wordpress:
image: wordpress
links:
- db: mysql
ports:
- 8080: 80
db:
image: mariadb
environment:
MYSQL_ROOT_PASSWORD: wordpress

docker-compose up

注意:如果提示没有docker-compose命令,Ubuntu用户可以通过sudo apt-get install docker-compose在线安装

centos用户yum install docker-compose进行安装

6.Ghost

Ghost是一个广受欢迎的开源博客平台,使用JavaScript编写,以MIT协议发布。它的设计非常简约,使用起来体验优异,非常适合做内容发布,故而受到很多极客或技术工作人员的喜爱。

docker run --name dhost-container -d ghost

docker run --name ghost-container-1 -p 8080:2368 -d ghost

7.Jekins

Jekins是一个得到广泛应用的持续集成和持续交互的工具。作为开源软件项目,它旨在提供一个开放易用的持续集成平台。Jenkins能实时监控集成中存在的错误,提供详细的日志文件和提醒功能,并用图表的形式形象的展示项目构建的趋势和稳定性。Jekins特点包括安装配置简单、支持详细的测试报表、分布式构建。

docker run -p 8080:8080 -p 50000:50000 jenkins

8.Gitlab

Gitlab是一款非常强大的开源源码管理系统。它支持基于Git的源码管理、代码评审、issue跟踪、活动管理、wiki页面,持续集成和测试等功能。基于Gitlab,用户可以自己搭建一套类Github的开发协同平台。

Gitlab官方提供了社区版本的Dockerfile镜像

docker run --detach \ --hostname gitlab.example.com \ --publish 443:443 --publish 80:80 --publish 22:22 \ --name gitlab \ --restart always \ --volume /srv/gitlab/config:/etc/gitlab \ --volume /srv/gitlab/logs:/var/log/gitlab \ --volume /srv/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce:latest

小结:

Web服务在内的中间件领域为什么适合引入容器技术?

原因如下:

a.中间件服务器是除数据库服务器外的主要计算节点,很容器成为性能瓶颈,所以通常需要大批量部署,而Docker对于批量部署有着先天的优势;

b.中间件服务器结构清晰,在剥离了配置文件、日志、代码目录之后,容器几乎可以处于零增长状态,这使得容器的迁移和批量部署更加方便;

c.中间服务器很容易实现集群,在使用软件Nginx负载均衡后中间服务器集群变得非常容易。

最新文章

  1. 关于java的格式输出控制
  2. JavaSE复习总结之集合(Collection)
  3. 3.0之后在LinearLayout里增加分割线
  4. 类似区间计数的种类并查集两题--HDU 3038 & POJ 1733
  5. CSS:7个你可能不认识的单位
  6. POJ2632 Crashing Robots(模拟)
  7. 查看 并发请求数及其TCP连接状态
  8. Python自动化开发-简介
  9. UISwitch 开关控件
  10. Python之re模块(结合具体业务)
  11. pycharm failed to create JVM
  12. 金九银十,史上最强 Java 面试题整理。
  13. KNN-笔记(2)
  14. javascript状态机及在工作流中的应用
  15. ATL、MFC、WTL CString 的今生前世(转载)
  16. P2756 飞行员配对方案问题
  17. 查看指定spid的脚本当前运行情况和状态
  18. 将"a"标签当bunton使用
  19. SQL语句的执行过程
  20. TesseractOCR Tutorials

热门文章

  1. Java程序中的死锁
  2. 1px边框的渐变
  3. HTML5 FormData实现文件上传实例
  4. 阿里云 CentOS7安装redis4.0.9并开启远程访问
  5. Git——克隆部分文件
  6. Linux 线程调度与优先级
  7. mysql 免安装版
  8. node(3)MVC代码结构模式moogoDB的学习
  9. redis介绍(5)主从复制
  10. 深入浅出React的一些细节——State