Docker实战(八)之Web服务与应用
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负载均衡后中间服务器集群变得非常容易。
Docker实战(八)之Web服务与应用的更多相关文章
- 【docker专栏4】使用docker安装nginx提供web服务
一般学习一项技术,会先用一个最简单的例子或最典型的例子来向大家讲解入门内容,所以此文为大家介绍使用docker安装nginx容器服务.从基础使用的角度来讲,此文几乎涵盖了docker最核心的内容:镜像 ...
- docker 搭建 web 服务环境
docker容器虽然早就听说过,但是本人还真的没去用过,刚好看到相关的文章,就分享了下,有机会可以实践下...... 做过开发的人对开发环境的安装.配置应该都不会太陌生,不管你做什么开发,对开发环境都 ...
- Linux实战教学笔记38:企业级Nginx Web服务优化实战(下)
四,Nginx站点目录及文件URL访问控制 4.1 根据扩展名限制程序和文件访问 Web2.0时代,绝大多数网站都是以用户为中心多的,例如:bbs,blog,sns产品,这几个产品都有一个共同特点,就 ...
- 基于docker+etcd+confd + haproxy构建高可用、自发现的web服务
基于docker+etcd+confd + haproxy构建高可用.自发现的web服务 2016-05-16 15:12 595人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主 ...
- Docker 发布 Abp net core web 服务
Docker 发布 Abp net core web 服务 准备工作:Abp 项目,这个是模板下载地址 https://aspnetboilerplate.com/Templates (本例使用的是S ...
- Docker实战 | 第二篇:IDEA集成Docker插件实现一键自动打包部署微服务项目,一劳永逸的技术手段值得一试
一. 前言 大家在自己玩微服务项目的时候,动辄十几个服务,每次修改逐一部署繁琐不说也会浪费越来越多时间,所以本篇整理通过一次性配置实现一键部署微服务,实现真正所谓的一劳永逸. 二. 配置服务器 1. ...
- SpringBoot实战(十)之使用Spring Boot Actuator构建RESTful Web服务
一.导入依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...
- Linux实战教学笔记37:企业级Nginx Web服务优化实战(上)
一,Nginx基本安全优化 1.1 调整参数隐藏Nginx软件版本号信息 一般来说,软件的漏洞都和版本有关,这个很像汽车的缺陷,同一批次的要有问题就都有问题,别的批次可能就都是好的.因此,我们应尽量隐 ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_4-05 微服务调用方式之feign 实战 订单调用商品服务
笔记 5.微服务调用方式之feign 实战 订单调用商品服务 简介:改造电商项目 订单服务 调用商品服务获取商品信息 Feign: 伪RPC客户端(本质还是用http) ...
随机推荐
- 浅谈FIle协议与Http协议及区别
背景 先看三段代码: index.html: <!DOCTYPE html> <html lang="en"> <head> <meta ...
- content_form.class.php文件不完整 解决方案
玩phpcms的从多少会遇到这个问题,根据错误提示我们可以发现是由于content_form.class.php文件不完整导致的,网上有好多文章说是把这个文件用本地的替换掉就可 以了,但是只要一更新缓 ...
- bootstrap前端框架使用总结分享
1.bootstrap 排版 全局样式style.css: 1.移除body的margin声明 2.设置body的背景色为白色 3.为排版设置了基本的字体.字号和行高 4.设置全局链接颜色,且当链接处 ...
- 安装php扩展redis (windows环境)
首先十分感谢网络上支持开源分享的前辈们,资源真的太丰富了,虽然也有许多优秀的国外资源被墙了... 想要给php增加redis扩展第一步当然要知道自己使用的php版本以及一些配置.查看 phpinfo ...
- Ubuntu14.04安装Torch7笔记
Ubuntu14.04安装Torch7笔记 利用快捷键Ctrl+Alt+T打开Ubuntu终端 第一步: 获取安装LuauJIT(C语言编写的Lua的解释器)和Torch所必需的依赖包. 代码如下: ...
- call aplly笔记
<script> /*1.每个函数都包含两个非继承而来的方法:apply()和call(). 2.他们的用途相同,都是在特定的作用域中调用函数. 3.接收参数方面不同,apply()接收两 ...
- java注册后缀样式(ajax提示)
方法位置 <FORM id=form1 name=form1 action = "${pageContext.request.contextPath }/user_regist.act ...
- Hadoop总结
背景 Hadoop是一个由Apache基金会所开发的分布式系统基础架构.用户可以在不了解分布式底层细节的情况下,开发分布式程序.充分利用集群的威力进行高速运算和存储. Mapreduce1 vs YA ...
- linux 软件包安装方式选择、安装位置、源码包安装
对外提供服务,比如apache,应使用源码包安装对内提供服务,比如gcc,只是我自己使用,使用rpm包安装 rpm包不需要指定安装位置,源码包的安装需要手动指定安装位置 rpm包默认安装位置/etc/ ...
- ASP.NET MVC 5搭建自己的视图基架 (CodeTemplate)
我们知道,在MVC项目中添加视图时,在添加面板有模板可以选择,这里会有人疑问,这个模板位于哪里?我可以搭建自己的基架吗? 首先回答第二个问题,答案是当然可以 我这里使用的是Visual Studio ...