說明:
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
可以看到,haproxy已經成功實現了代理的功能.
目前的鏡像不知道為什麼不能通過修改haproxy.cfg的方式來支援,後續研究
之後再補上golang鏡像及應用部署的流程