• 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负载均衡后中间服务器集群变得非常容易。

  • 相关阅读:
    Java实现 LeetCode 211 添加与搜索单词
    跨平台Unicode与UTF8互转代码
    C++转换unicode utf-8 gb2312编码
    c++ ANSI、UNICODE、UTF8互转
    Visual C++ unicode and utf8 转换
    Unicode和UTF-8的关系
    boost uuid 学习笔记
    boost uuid
    Darwin Streaming server 的 Task 类
    VS2010下编译安装DarwinStreamingServer5.5.5
  • 原文地址:https://www.cnblogs.com/youcong/p/9193994.html
Copyright © 2020-2023  润新知