docker - 從安裝到部署一個web應用(go、java)
原創 2016年05月11日 13:39:13 標籤:docker 15017
說明:
1.權限是root,不是則先提升權限
一:安裝docker
1.https://docs.docker.com/engine/installation/binaries/
下載docker最新版二進制tar.gz
linux下:
wget https://get.docker.com/builds/Darwin/x86_64/docker-1.11.0.tgz
2.丟到 $path中
mv docker /usr/local/sbin
3.啓動
docker daemon &
二.在容器上運行tomcat
docker官方鏡像倉庫由於有牆,所以下載的很慢。目前我用的是時速雲的鏡像。
第一步:拉取鏡像到本地
docker pull index.tenxcloud.com/tenxcloud/tomcat
第二步:爲鏡像添加一個別名
docker tag index.tenxcloud.com/tenxcloud/tomcat tomcat-1
第二步:啓動tomcat
docker run -p 5000:8080 --name container1 tomcat-1
如此一來,tomcat就啓動了,-p 5000:8080的意思是把容器tomcat的8080端口隱射到宿主機的端口上,這樣外網訪問5000就能訪問到我們的container1的8080 tomcat上面了.
如此一來,一個簡單的tomcat就跑起來了.
此處容器container1 和 鏡像tomcat-1,我的理解是鏡像就是一個模板,container1就是根據這個模板創造的一個真正的盆子,這個盆子裏面就跑着我們的tomcat. 所以我們可以用同一個鏡像創建許多container。
三.在tomcat上面部署我們的應用
接下來我們要部署我們的應用上去,思路是進入到container1裏面去,此時可以把container1想象爲一個新的機器,我們只需要到tomcat的webapp丟war,然後重啓就行了.
1.進入容器內部
docker exec -it container2 /bin/bash
2.查看tomcat webapp路徑
/tomcat/webapps
3.傳war
把war丟到宿主機 在丟到container裏面丟到tomcat/webapps
docker cp DemoOne.war container2:tomcat/webapps
太TM驚喜了,docker本身就支持啊!!!666666.
4.重啓容器
不需要了。。。docker自動幫你部署了
這裏寫圖片描述
5.訪問應用
這裏寫圖片描述
至此,一個完整的docker部署tomcat及上線一個java web應用流程就走通了.
說實話,走通後才發現是這麼的簡單。之前概念上面不懂的地方這下也基本通了。
不得不說很Nice,和預想中的完全一樣,就把dokcer給你創建的container當成一個新的linux用就行啦!
使用docker部署一套應用系統
接下來部署一套完整的系統,包括如下組件:
負載均衡:Haproxy
JAVA工:tomcat
緩存:Redis Master、Slave
流程是Java開一個restful接口,爲redis寫入一個數據,
再開一個restful接口,從redis讀取一個數據。
系統結構如圖:
這裏寫圖片描述
步驟:
1.準備java工程,並打包成war
2.拉取haproxy鏡像,並運行
//注意 --name不能放在最後,6555:80 80不可更改,是haproxy本身的端口
docker run -d -p 6555:80 --link container2:container2 --name haproxy-1 haproxy
1
2
這裏寫圖片描述
可以看到,haproxy已經成功實現了代理的功能.
目前的鏡像不知道爲什麼不能通過修改haproxy.cfg的方式來支持,後續研究
之後再補上golang鏡像及應用部署的流程