docker在web開發中得使用流程概述:
1、創建java鏡像:
把所有的文件都放置在docker目錄下,分別為不同的功能創建不同的目錄。
$ sudo mkdir docker/java
$ sudo cd docker/java
接下來在該目錄下創建壹個jdk的Dockerfile文件,具體內容如下:
# openjdk 6
# version 1.0
FROM ubuntu:14.04
MAINTAINER mhy "mhy2011@gmail.com"
RUN apt-get update
RUN apt-get install -y -q openjdk-7-jdk
WORKDIR /
ENV JAVA_HOME /usr/lib/jvm/java-7-openjdk-amd64
CMD ["/bin/bash"]
創建完Dockerfile之後來生成壹個jdk的鏡像
$ sudo docker build -t pobaby/java .
可以看到已經生成了壹個鏡像名為pobaby/java的鏡像,接下來檢驗壹下該鏡像能否正常使用,通過該鏡像啟動壹個容器,然後看看java命令是否能執行。
2、創建resin鏡像
這裏以使用的webserver是resin,沒有使用tomcat,以此說明:
使用剛才創建的pobaby/java的鏡像為基礎鏡像來創建resin鏡像
# resin
# version 1.0
FROM pobaby/java
MAINTAINER mhy "mhy2011@gmail.com"
RUN apt-get update
ADD resin-3.1.14.tar.gz /opt/
WORKDIR /opt/
RUN mv resin-3.1.14 resin
EXPOSE 8080
ENTRYPOINT ["/opt/resin/bin/httpd.sh"]
關於這個Dockerfile中有壹行
ADD resin-3.1.14.tar.gz /opt/
是把當前目錄下的resin-3.1.14.tar.gz添加到容器的/opt/目錄下並解壓,當然也可以指定從網絡上下載
接下來再生成壹個包含resin的鏡像
$ sudo docker build -t pobaby/resin .
這裏又生成了壹個名為pobaby/resin的鏡像。接下來通過該鏡像啟動壹個容器,觀察壹下環境是否正常。
$ sudo docker run -d -p 80:8080 --name web001 pobaby/resin
3、接下來訪問壹下該容器,把本機80端口映射到容器的8080端口上
4、啟動Web項目
創建壹個包含WebServer的基本鏡像,然後啟動壹個容器,在啟動容器的時候掛載上本地的web應用,具體如下:
$ sudo docker run -d -p 8881:8080 --name web-demo -v $PWD/webapps:/opt/resin/webapps pobaby/resin
以上啟動了壹個名為web-demo容器,並把webapps下的項目web-demo掛載到容器/opt/resin/webapps下
訪問結果如下:
以上已經實現了壹個簡單的基於Docker容器運行的Java Web程序。