一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - 在docker中部署tomcat并且部署java應用程序的步驟詳解

在docker中部署tomcat并且部署java應用程序的步驟詳解

2020-09-28 21:37坐忘峰 服務器知識

本文給大家介紹如何在docker中部署tomcat及如何部署我們的應用程序到docker容器的tomcat里,本文介紹的非常詳細,具有參考借鑒價值,一起看看吧

先給大家簡單說下Docker的概念

Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的 Linux 機器上,也可以實現虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。

1、先說如何在docker中部署tomcat

第一步:root用戶登錄在系統根目錄下創建文件夾tomcat7,命令如:mkdir tomcat7,并且切換到該目錄下:cd tomcat7;

第二步:創建Dockerfile,命令如:touch Dockerfile;

第三步:編寫Dockerfile,命令如:vim Dockerfile,完成以下命令編寫:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
FROM ubuntu:14.04
MAINTAINER zhaichong <[email protected]>
ENV REFRESHED_AT 2015-7-28
RUN apt-get -yqq update
RUN apt-get -yqq install tomcat7 default-jdk
ENV CATALINA_HOME /usr/share/tomcat7
ENV CATALINA_BASE /var/lib/tomcat7
ENV CATALINA_PID /var/run/tomcat7.pid
ENV CATALINA_SH /usr/share/tomcat7/bin/catalina.sh
ENV CATALINA_TMPDIR /tmp/tomcat7-tomcat7-tmp
RUN mkdir -p $CATALINA_TMPDIR
VOLUME ["/var/lib/tomcat7/webapps/"]
EXPOSE 8080 9000
ENTRYPOINT ["/usr/share/tomcat7/bin/catalina.sh", "run" ]

說明:這里的EXPOSE要把程序中需要使用到的端口都要暴露出去。根據環境變量CATALINA_BASE可以知道VOLUME指定的目錄就是tomcat部署war包的目錄。

第四步:生成鏡像,命令如:docker build -t test/test_app . (注意這里有個英文的句號);注意,在這個過程中docker需要下載安裝的jdk和tomcat程序所以比較忙,可以通過命令:docker image查看下,返回的數據中第一行有個REPOSITORY和TAG都是<none>的數據行,其中的VIRTUAL_SIZE是階段性變大的,說明是在下載。

第五步:運行鏡像生成容器,命令如:docker run --name test_app -d -p 8080:8080 -p 9000:9000 鏡像id,如果不知道鏡像id是多少就使用命令:docker images查看下,注意這里把EXPOSE出來的端口和宿主主機的端口綁定起來了,以后就可以使用宿主主機的IP地址和這個端口來訪問docker容器中的tomcat以及其中的應用程序了。

第六步:測試:在瀏覽器地址欄敲:http://宿主主機ip:8080/,好了成功了。

可以使用命令:docker port 容器id 8080,這個命令查看容器的8080端口和宿主主機端口之間的映射關系,而已看出來現在容器的8080端口映射的是宿主主機的8080端口。

2、再說如何部署我們的應用程序到docker容器的tomcat里?

大家知道tomcat在容器中,如果要像在宿主主機上那樣部署tomcat應用程序肯定是不行的。那么采用什么辦法呢?

第一步:上一個問題中我們已經知道war包是部署在容器的位置是:/var/lib/tomcat7/webapps/,那么這個位置到底在什么地方?使用命令:docker inspect -f "{{.Volumes}}" 容器id,如果不知道容器id,則可以通過:docker ps的方式查看到所有運行的容器,也可以通過docker ps -a的方式查看所有容器,包括運行的和不運行的。

會得出以下的結果:

?
1
map[/var/lib/tomcat7/webapps:/var/lib/docker/vfs/dir/28d6dd0455d92f0160288a56f838d8aeeff402a843bd57d3b21fcd80eac7df02],

在這個map的中括號里,冒號前邊的是容器中的目錄,冒號后邊的對應的宿主主機中的目錄,所以我們只需要把我們的war包拷貝到這個地方然后重啟tomcat即可。

這里要注意,由于我們上邊寫的Dockerfile中默認容器啟動時是會啟動tomcat的,所以這里只需要重啟容器就能讓tomcat把我們的容器加載上,命令如:

docker restart 容器id

3、如果要看成tomcat的日志呢?比如查看啟動時的日志,則可以使用命令:

docker logs 容器id,如果要持續觀察日志,則是:docker logs -f 容器id,這個時候日志是從頭開時讀的,如果日志很長會刷屏很久,如果只打算看最新的日志可以采用以下的方式:docker logs --tail 0 -f 容器id

注意,有的時候我們想在執行docker run命令的時候才指定映射的Volumes,則可以使用如下命令:

?
1
docker run --name gboat2_ca -d -p 8080:8080 -p 9000:9000 --link db001:db_ca -v /home/webapp/ca:/var/lib/tomcat7/webapps/ 64de1445c34c

這里一定要注意的是最后的英文冒號前邊是宿主主機的文件夾路徑,冒號后邊是容器中的路徑。

以上所述是小編給大家介紹的在docker中部署tomcat并且部署java應用程序的步驟詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對服務器之家網站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费看又黄又爽又猛的视频软件- | 海绵宝宝第二季全集免费观看 | 欧美黑人性猛交╳xx╳动态图 | 亚洲精品一区二区观看 | 丝袜老师好湿好紧我要进去了 | 狠狠色狠狠色综合系列 | 国产成人h视频在线播放网站 | 美女岳肉太深了使劲 | 1024视频色版在线网站 | 美女脱一净二净不带胸罩 | 欧美老人与小伙子性生交 | 天天爱天天插 | 欧美性xxx狂流白浆 欧美性f | 男同互操 | 色综合视频一区二区观看 | 精品视频一区二区观看 | a级免费在线观看 | 99国产情在线视频 | 毛片一区二区三区提莫影院 | 美女脱得一二净无内裤全身的照片 | 精品一区二区视频 | 国产精品久久久久久久久 | sese在线| 日日操免费视频 | 日本精品中文字幕在线播放 | 精品视频免费在线 | 国产高清免费在线 | 奇米影视久久777中文字幕 | 四虎麻豆国产精品 | 99久久国产综合精品女小说 | 欧美一区欧美二区 | 6969精品视频在线观看 | 成人小视频在线观看 | 无遮挡h肉动漫在线观看电车 | 欧美添下面视频免费观看 | 欧美猛男同志同性video | 欧美日韩精彩视频 | 亚洲国产在线观看免费视频 | 国产日韩欧美视频 | 日韩小视频在线观看 | 3d美女触手怪爆羞羞漫画 |