Docker部署多個WebApp
使用Docker部署多個webapp,相互隔離蹬碧,使用不的端口號,互不影響的獨立服務(wù)。
基本思路:
1)創(chuàng)建一個tomcat的image航唆。
2)基于tomcat image,創(chuàng)建多個WebApp的Contailer.
3)掛載Contailer的logs, webapp目錄到本機目錄院刁,實現(xiàn)多個WebApp的部署糯钙。
創(chuàng)建tomcat image
-
建立臨時目錄
/root/tmp/webapp
建立Dockerfile
# tomat:7
FROM tomcat:7
#
MAINTAINER "test <xxx@xx.com>"
# 啟動腳本,放到Docker /home目錄之中
ADD ./start.sh /home
# 啟動命令
CMD ["/home/start.sh"]
- 創(chuàng)建啟動腳本start.sh
1 #!/bin/bash
5 sh /usr/local/tomcat/bin/startup.sh
6 tail -f /usr/local/tomcat/logs/catalina.out
-
建立測試目錄
loris-test
-
測試目錄結(jié)構(gòu)
Dockerfile loris-test start.sh
建立tomcat image
docker build -t loris-test .
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
loris-test latest 7bc5b37308ad 57 seconds ago 357MB
friendlyhello latest 919958ceacc3 5 days ago 132MB
“l(fā)oris-test” 剛剛建立的tomcat image.
創(chuàng)建多個Container
- 第一個webapp container (loris-test1 4004:8080)
docker run -d -p 4004:8080 -v /home/websoft/loris/loris-test1/logs/:/usr/local/tomcat/logs/ -v /home/websoft/loris/loris-test1/webapps:/usr/local/tomcat/webapps/ --name loris-test1 loris-test
說明:
1)-d -p 4004:8080; 后臺運行退腥,使用4004端口號映射8080端口任岸。
2)-v /home/websoft/loris/loris-test1/logs/:/usr/local/tomcat/logs/;
掛載本機目錄“/home/websoft/loris/loris-test1/logs/”到docker"/usr/local/tomcat/logs/" 用于實時查看loris-test1的log信息狡刘。
3)-v /home/websoft/loris/loris-test1/webapps:/usr/local/tomcat/webapps/ ;
再掛載本機目錄“/home/websoft/loris/loris-test1/webapps”到docker目錄“/usr/local/tomcat/webapps/” 享潜;
用于部署webapp,
4)--name loris-test1 container的名稱.
5) loris-test. 從剛剛創(chuàng)建的"loris-test" image建立container.
- 第二個webapp container (loris-test2 4005:8080)
docker run -d -p 4005:8080 -v /home/websoft/loris/loris-test2/logs/:/usr/local/tomcat/logs/ -v /home/websoft/loris/loris-test2/webapps:/usr/local/tomcat/webapps/ --name loris-test2 loris-test
調(diào)整端口號,container的名稱嗅蔬,可以建議很多container剑按,使用相同的image.
測試
-
loris-test1 部署測試 webapp
部署一個最簡單的webapp test到"/home/websoft/loris/loris-test1/webapps"test/index.jsp META-INF WEB-INF
重啟 loris-test1
docker restart loris-test1
- wget
wget http://localhost:4004/test
[root@izhp39lknawryomnia12roz test]# wget http://localhost:4004/test
--2018-09-03 14:17:28-- http://localhost:4004/test
Resolving localhost (localhost)... 127.0.0.1, ::1
Connecting to localhost (localhost)|127.0.0.1|:4004... connected.
HTTP request sent, awaiting response... 302 Found
Location: /test/ [following]
--2018-09-03 14:17:28-- http://localhost:4004/test/
Reusing existing connection to localhost:4004.
HTTP request sent, awaiting response... 200 OK
Length: 66 [text/html]
Saving to: ‘test.8’
100%[=====================================================================================================================================================>] 66 --.-K/s in 0s
2018-09-03 14:17:28 (17.4 MB/s) - ‘test.8’ saved [66/66]
可以正常工作疾就。
同樣的方法測試loris-test2,也可以正常工作。