知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
您當前位置>首頁 » 新聞資訊 » 網(wǎng)站建設(shè) >
從零開始使用Docker構(gòu)建Java Web開發(fā)運行環(huán)境
發(fā)表時間:2014-11-25
發(fā)布人:葵宇科技
瀏覽次數(shù):41
概述
前面我們講了關(guān)于Docker的一些基本概念和操作,今天我們以一個簡單的Java Web例子來說一下Docker在日常工作中的應(yīng)用,本篇主要講如下幾部分內(nèi)容:創(chuàng)建jdk鏡像、創(chuàng)建resin鏡像、啟動web項目。因為本篇中的內(nèi)容都是基于Dockerfile來創(chuàng)建的,針對于不是很熟悉Dockerfile的讀者來說可以先熟悉一下Dockerfile的相關(guān)知識:https://docs.docker.com/reference/builder/
創(chuàng)建jdk鏡像
首先我們來創(chuàng)建一個包含jdk的基礎(chǔ)鏡像,這里我們把所有的文件都放置在docker目錄下,分別為不同的功能創(chuàng)建不同的目錄。
$ sudo mkdir docker/java
$ sudo cd docker/java
接下來我們在該目錄下創(chuàng)建一個jdk的Dockerfile文件,具體內(nèi)容如下:
# 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"]
創(chuàng)建完Dockerfile之后我們來生成一個jdk的鏡像
$ sudo docker build -t pobaby/java .
可以看到已經(jīng)生成了一個鏡像名為pobaby/java的鏡像,接下來我們檢驗一下該鏡像能否正常使用,通過該鏡像啟動一個容器,然后看看java命令是否能執(zhí)行。
$ sudo docker run -it pobaby/java
可以看到啟動的容器中能正常運行Java命令,說明我們的第一個jdk的鏡像沒有問題,接下來就是要創(chuàng)建包含resin的鏡像。
創(chuàng)建resin鏡像
這里我們使用的webserver是resin,沒有使用tomcat,兩個創(chuàng)建鏡像的方式都差不多。resin和tomcat一樣,在啟動時都依賴于底層的jdk,因此我們在創(chuàng)建resin鏡像時有兩種選擇:1、使用我們剛才創(chuàng)建的pobaby/java的鏡像為基礎(chǔ)鏡像來創(chuàng)建;或者2、使用ubuntu這種基礎(chǔ)鏡像來創(chuàng)建。個人建議是使用第一種方式,保證資源的重復利用,避免不必要的浪費。具體的Dockerfile內(nèi)容如下:
# 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"]
關(guān)于這個Dockerfile中有一行
ADD resin-3.1.14.tar.gz /opt/
是把當前目錄下的resin-3.1.14.tar.gz添加到容器的/opt/目錄下并解壓,當然也可以指定從網(wǎng)絡(luò)上下線(因為公司網(wǎng)速太慢了,這里就使用這種方式了)。
接下來我們再生成一個包含resin的鏡像
$ sudo docker build -t pobaby/resin .
可以看到,這里我們又生成了一個名為pobaby/resin的鏡像。接下來我們通過該鏡像啟動一個容器,觀察一下環(huán)境是否正常。
$ sudo docker run -d -p 80:8080 --name web001 pobaby/resin
這里我們啟動了一個容器,然后把本機80端口映射到容器的8080端口上,接下來我們訪問一下該容器。
可以看到resin能正常啟動了,接下來就到我們最重要的一步了。如何把開發(fā)好的Java Web程序部署到resin的容器中。
啟動Web項目
針對于我們的Web程序來說,因為時常要更新程序并打包,所以不建議把程序直接打包的鏡像中,建議采用的方式是:創(chuàng)建一個包含WebServer的基本鏡像,然后啟動一個容器,在啟動容器的時候掛載上我們的web應(yīng)用,具體如下:
$ 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下(此處我們只掛載了應(yīng)用程序,當然也可以使用多個-v參數(shù)掛載不同的目錄,比如resin的配置文件等)。然后我們訪問一下該應(yīng)用是否能訪問,具體效果如下:
從上面可以看到,我們已經(jīng)實現(xiàn)了一個簡單的基于Docker容器運行的Java Web程序,這個程序比較簡單,沒有數(shù)據(jù)庫連接等功能,后面我們會進行完善,然后搭建一個功能更完善的應(yīng)用程序。
關(guān)于使用Docker搭建Java簡易Web開發(fā)運行環(huán)境就講到這里,鑒于能力有限,如有不如歡迎大家指正。
相關(guān)案例查看更多
相關(guān)閱讀
- 網(wǎng)站建設(shè)靠譜公司
- 云南小程序哪家好
- 云南網(wǎng)站建設(shè)一條龍
- 云南建設(shè)廳官方網(wǎng)站
- 汽車報廢回收
- 網(wǎng)站建設(shè)服務(wù)公司
- 云南小程序定制
- 汽車報廢軟件
- 云南小程序開發(fā)公司
- 退款
- 云南小程序開發(fā)哪家好
- 小程序用戶登錄
- 云南小程序被騙
- web
- 高端網(wǎng)站建設(shè)公司
- 云南網(wǎng)站建設(shè)哪家公司好
- 網(wǎng)站優(yōu)化哪家好
- 百度快速排名
- 百度推廣
- 云南網(wǎng)站建設(shè)公司排名
- 跳轉(zhuǎn)小程序
- 分銷系統(tǒng)
- 云南網(wǎng)站建設(shè)特性
- 云南微信小程序開發(fā)
- 昆明網(wǎng)站制作
- 網(wǎng)絡(luò)公司聯(lián)系方式
- 云南建設(shè)廳網(wǎng)站首頁
- 制作一個小程序
- 報廢車回收管理軟件
- 云南網(wǎng)站建設(shè)百度