Docker学习<3>部署一个Web应用

部署一个web应用

  1. 下载jetty镜像

     $ docker pull jetty
     jetty     9        3f468c596b78        2 days ago          344.1 MB
    

    大概300M+,包括OpenJdk1.7 和操作系统

  2. 官方文档 Jetty registry

     $ docker run -d jetty
    

    测试 http://container-ip:8080 可以看到 jetty 已经运行,如果你想使用host的端口请做如下端口映射:

     $ docker run -d -p 8888:8080 jetty
    

    现在可以用 Docker host 的 ip 和端口 8888 来测试 jetty

     $curl http://docker-host-ip:8888
     <HTML>
     <HEAD>
     <TITLE>Error 404 - Not Found</TITLE>
     <BODY>
     <H2>Error 404 - Not Found.</H2>
     No context on this server matched or handled this request.<BR>Contexts known to this server are: <ul></ul><hr><a href="http://eclipse.org/jetty"><img border=0 src="/favicon.ico"/></a>&nbsp;<a href="http://eclipse.org/jetty">Powered by Jetty:// Java Web Server</a><hr/>
    

    jetty镜像的默认环境配置:

     $ docker run -i -t jetty env
     PATH=/usr/local/jetty/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
     HOSTNAME=9a862391d719
     TERM=xterm
     JAVA_VERSION=7u75
     JAVA_DEBIAN_VERSION=7u75-2.5.4-2
     JETTY_HOME=/usr/local/jetty
     JETTY_MAJOR=9
     JETTY_VERSION=9.2.10.v20150310
     JETTY_TGZ_URL=http://eclipse.org/downloads/download.php?r=1&file=/jetty/stable-9/dist/jetty-distribution-9.2.10.v20150310.tar.gz
     JETTY_BASE=/var/lib/jetty
     JETTY_RUN=/run/jetty
     JETTY_STATE=/run/jetty/jetty.state
     TMPDIR=/tmp/jetty
     HOME=/root    
    

    Webapps 被部署在容器内的 /var/lib/jetty/webapps.
    挂载 Docker Host 上的目录到容器内:

     $ docker run -d  -v /tmp/webapps:/var/lib/jetty/webapps -p 8080:8080 jetty
    

    挂载 Docker Host上的 /tmp/webapps 到容器的 /var/lib/jetty/webapps 目录并映射 Host 上8080端口到容器的 8080 端口。
    下面部署webapp/tmp/webapps 中,建立一个Web Project:jetty-webapp-test,在web根目录添加两个测试文件 index.jspindex.html,打包成 jetty-webapp-test.war。把war包移动到Docker Host/tmp/webapps 下:

     $ curl http://localhost:8080/jetty-webapp-test/index.html
     <!DOCTYPE html>
     <html>
     <head>
     <meta charset="UTF-8">
     <title>index.html</title>
     </head>
     <body>
     这是一个测试html!
     </body>
     </html>
     $ curl http://localhost:8080/jetty-webapp-test/index.jsp
     <html>
     <body>
     <h2>Hello World!</h2>
     hello world!
    

    部署完成。