版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Docker學(xué)習(xí)筆記之一,搭建一個(gè)JAVA Tomcat運(yùn)行環(huán)境前言Docker旨在提供一種應(yīng)用程序的自動(dòng)化部署解決方案,在 Linux 系統(tǒng)上迅速創(chuàng)建一個(gè)容器(輕量級(jí)虛擬機(jī)并部署和運(yùn)行應(yīng)用程序,并通過(guò)配置文件可以輕松實(shí)現(xiàn)應(yīng)用程序的自動(dòng)化安裝、部署和升級(jí),非常方便。因?yàn)槭褂昧巳萜?所以可以很方便的把生產(chǎn)環(huán)境和開(kāi)發(fā)環(huán)境分開(kāi),互不影響,這是 docker 最普遍的一個(gè)玩法。更多的玩法還有大規(guī)模 web 應(yīng)用、數(shù)據(jù)庫(kù)部署、持續(xù)部署、集群、測(cè)試環(huán)境、面向服務(wù)的云計(jì)算、虛擬桌面 VDI 等等。主觀的印象:Docker 使用 Go 語(yǔ)言編寫(xiě),用 cgroup 實(shí)現(xiàn)資源隔離,容器技術(shù)采用 LXC. 提供了能
2、夠獨(dú)立運(yùn)行Unix進(jìn)程的輕量級(jí)虛擬化解決方案。它提供了一種在安全、可重復(fù)的環(huán)境中自動(dòng)部署軟件的方式。LXC命令有些復(fù)雜,若感興趣,這里有一篇我以前寫(xiě)的基于LXC,(從無(wú)到有,搭建一個(gè)簡(jiǎn)單版的JAVA PAAS 云平臺(tái),可以提前復(fù)習(xí)一下。環(huán)境本文所有環(huán)境,VMware WorkStation上運(yùn)行ubuntu-13.10-server-amd64,注意是64位系統(tǒng),理論上其它虛擬機(jī)也是完全可行的。安裝DockerDocker 0.7版本需要linux內(nèi)核 3.8支持,同時(shí)需要AUFS文件系統(tǒng)。# 檢查一下AUFS是否已安裝sudo apt-get updatesudo apt-get insta
3、ll linux-image-extra-uname -r# 添加Docker repository key# 添加Docker repository,并安裝Dockersudo apt-get updatesudo apt-get install lxc-docker# 檢查Docker是否已安裝成功sudo docker versionGo version (client: go1.2Git commit (client: 88df052Git commit (server: 88df052Go version (server: go1.2去除掉sudo在Ubuntu下,在執(zhí)行Docker
4、時(shí),每次都要輸入sudo,同時(shí)輸入密碼,很累人的,這里微調(diào)一下,把當(dāng)前用戶執(zhí)行權(quán)限添加到相應(yīng)的docker用戶組里面。# 添加一個(gè)新的docker用戶組sudo groupadd docker# 添加當(dāng)前用戶到docker用戶組里,注意這里的yongboy為ubuntu server登錄用戶名sudo gpasswd -a yongboy docker# 重啟Docker后臺(tái)監(jiān)護(hù)進(jìn)程sudo service docker restart# 重啟之后,嘗試一下,是否生效docker version#若還未生效,則系統(tǒng)重啟,則生效sudo reboot安裝一個(gè)Docker運(yùn)行實(shí)例-ubuntu虛擬
5、機(jī)Docker安裝完畢,后臺(tái)進(jìn)程也自動(dòng)啟動(dòng)了,可以安裝虛擬機(jī)實(shí)例(這里直接拿官方演示使用的learn/tutorial鏡像為例:docker pull learn/tutorial安裝完成之后,看看效果docker run learn/tutorial /bin/echo hello world交互式進(jìn)入新安裝的虛擬機(jī)中docker run -i -t learn/tutorial /bin/bash會(huì)看到:root51774a81beb3:/#說(shuō)明已經(jīng)進(jìn)入交互式環(huán)境。安裝SSH終端服務(wù)器,便于我們外部使用SSH客戶端登陸訪問(wèn)apt-get updateapt-get install open
6、ssh-serverwhich sshd/usr/sbin/sshdmkdir /var/run/sshdpasswd #輸入用戶密碼,我這里設(shè)置為123456,便于SSH客戶端登陸使用exit #退出獲取到剛才操作的實(shí)例容器ID#docker ps -lCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES51774a81beb3 learn/tutorial:latest /bin/bash 3 minutes ago Exit 0 thirsty_pasteur可以看到當(dāng)前操作的容器ID為:51774a81beb3。注意了,一旦進(jìn)行所有
7、操作,都需要提交保存,便于SSH登陸使用:docker commit 51774a81beb3 learn/tutorial以后臺(tái)進(jìn)程方式長(zhǎng)期運(yùn)行此鏡像實(shí)例:docker run -d -p 22 -p 80:8080 learn/tutorial /usr/sbin/sshd -Dubuntu容器內(nèi)運(yùn)行著的SSH Server占用22端口,-p 22進(jìn)行指定。-p 80:8080指的是,我們ubuntu將會(huì)以8080端口運(yùn)行tomcat,但對(duì)外(容器外映射的端口為80。這時(shí),查看一下,是否成功運(yùn)行。#docker psCONTAINER ID IMAGE COMMAND CREATED ST
8、ATUS PORTS NAMESfocused_poincare注意這里的分配隨機(jī)的SSH連接端口號(hào)為49154:輸入可以口令,是不是可以進(jìn)入了?你一旦控制了SSH,剩下的事情就很簡(jiǎn)單了,安裝JDK,安裝tomcat等,隨你所愿了。以下為安裝腳本:# 在ubuntu 12.04上安裝oracle jdk 7apt-get install python-software-propertiesadd-apt-repository ppa:webupd8team/javaapt-get updateapt-get install -y wgetapt-get install oracle-java7
9、-installerjava -versionwget# 解壓,運(yùn)行bin/startup.sh默認(rèn)情況下,tomcat會(huì)占用8080端口,剛才在啟動(dòng)鏡像實(shí)例的時(shí)候,指定了 -p 80:8080,ubuntu鏡像實(shí)例/容器,開(kāi)放8080端口,映射到宿主機(jī)端口就是80。知道宿主機(jī)IP地址,那就可以自由訪問(wèn)了。在宿主機(jī)上,通過(guò)curl測(cè)試一下即可:當(dāng)然,你也可以使用瀏覽器訪問(wèn)啦。真實(shí)情況,可能不會(huì)讓tomcat直接對(duì)外開(kāi)放80端口,一般都會(huì)位于nginx/apache或者防火墻的后面,上面僅為演示。小結(jié)在Docker幫助下搭建一個(gè)Tomcat運(yùn)行時(shí)環(huán)境,總體很簡(jiǎn)單,讓我們看到了PAAS 的身影。不
10、錯(cuò),使用Docker作為PAAS底層服務(wù),本身就不復(fù)雜。下面有時(shí)間,會(huì)談一談如何使用腳本文件構(gòu)建一個(gè)鏡像實(shí)例,同時(shí)會(huì)談一談Docker的實(shí)現(xiàn)原理和機(jī)制等。Docker學(xué)習(xí)筆記之二,基于Dockerfile搭建JAVA Tomcat運(yùn)行環(huán)境前言在第一篇文字中,我們完全人工方式,一個(gè)命令一個(gè)命令輸入,實(shí)現(xiàn)一個(gè) java tomcat運(yùn)行環(huán)境,雖然也初見(jiàn)成效,但很累人。如果依靠依靠腳本構(gòu)建一個(gè)Tomcat容器實(shí)例,一個(gè)命令可以搞定,何樂(lè)而不為呢。好在Docker提供了Dockerfile作為構(gòu)建Docker鏡像腳本,避免人們一行一行的輸入,真是善莫大焉。Dockerfile腳本可以做到隨時(shí)維護(hù)修改,
11、即可以分享,更有利于在模板化,更不用說(shuō)傳輸了,好處那是一大籮筐!最終目的:打造一個(gè)支持SSH終端登錄、Tomcat7自動(dòng)運(yùn)行的Docker鏡像。編寫(xiě)一個(gè)Dockerfile所有環(huán)境,同第一篇文字。在ubuntu下安裝好vim之后(吐槽一下,ubuntu系統(tǒng)內(nèi)置vi命令十分難用,只好求助于vim :sudo vim Dockerfile編輯一個(gè)Dockerfile文件了,下面就是具體文件內(nèi)容:# 默認(rèn)ubuntu server長(zhǎng)期支持版本,當(dāng)前是12.04FROM ubuntu# 簽名啦MAINTAINER yongboy "yongboy"# 更新源,安裝ssh serve
12、rRUN apt-get updateRUN apt-get install -y openssh-serverRUN mkdir -p /var/run/sshd# 設(shè)置root ssh遠(yuǎn)程登錄密碼為123456RUN echo "root:123456" | chpasswd# 添加orache java7源,一次性安裝vim,wget,curl,java7,tomcat7等必備軟件RUN apt-get install python-software-propertiesRUN add-apt-repository ppa:webupd8team/javaRUN ap
13、t-get updateRUN apt-get install -y vim wget curl oracle-java7-installer tomcat7# 設(shè)置JAVA_HOME環(huán)境變量RUN update-alternatives -display javaRUN echo "JAVA_HOME=/usr/lib/jvm/java-7-oracle">> /etc/environmentRUN echo "JAVA_HOME=/usr/lib/jvm/java-7-oracle">> /etc/default/tomcat
14、7 # 容器需要開(kāi)放 SSH 22 端口 EXPOSE 22 # 容器需要開(kāi)放 Tomcat 8080 端口 EXPOSE 8080 # 設(shè)置 Tomcat7 初始化運(yùn)行,SSH 終端服務(wù)器作為后臺(tái)運(yùn)行 ENTRYPOINT service tomcat7 start && /usr/sbin/sshd -D 需要注意: 1. ENTRYPOINT,表示鏡像在初始化時(shí)需要執(zhí)行的命令,不可被重寫(xiě)覆蓋,需 謹(jǐn)記 2. CMD,表示鏡像運(yùn)行默認(rèn)參數(shù),可被重寫(xiě)覆蓋 3. ENTRYPOINT/CMD 都只能在文件中存在一次,并且最后一個(gè)生效 多個(gè)存 在,只有最后一個(gè)生效,其它無(wú)效! 4
15、. 需要初始化運(yùn)行多個(gè)命令,彼此之間可以使用 && 隔開(kāi),但最后一個(gè)須要 為無(wú)限運(yùn)行的命令,需切記! ENTRYPOINT/CMD,一般兩者可以配合使用,比如: ENTRYPOINT "/usr/sbin/sshd" CMD "-D" 在 Docker daemon 模式下,無(wú)論你是使用 ENTRYPOINT,還是 CMD,最后的命令, 一定要是當(dāng)前進(jìn)程需要一直運(yùn)行的,才能夠防容器退出。 以下無(wú)效方式: ENTRYPOINT service tomcat7 start #運(yùn)行幾秒鐘之后,容器就會(huì)退出 CMD service tomcat7 start #運(yùn)行幾秒鐘之后,容器就會(huì)退出 這樣有
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度新能源儲(chǔ)能系統(tǒng)承包安裝合同4篇
- 2024美容美發(fā)產(chǎn)品購(gòu)銷簡(jiǎn)單合同范本
- 2025年度深層水文地質(zhì)勘探打井勞務(wù)服務(wù)合同4篇
- 2024版智能家居設(shè)備租賃合同
- 2024私人房屋買賣合同范本53299
- 2024銷售無(wú)標(biāo)簽油煙機(jī)合同范本
- 2024版金融信息服務(wù)框架合同
- 2024運(yùn)營(yíng)總監(jiān)企業(yè)創(chuàng)新機(jī)制與激勵(lì)機(jī)制合同3篇
- 2025年度停車場(chǎng)照明設(shè)施改造承包合同4篇
- 2021-2026年中國(guó)飲料瓶智能回收機(jī)市場(chǎng)調(diào)查研究及行業(yè)投資潛力預(yù)測(cè)報(bào)告
- 拆遷評(píng)估機(jī)構(gòu)選定方案
- 床旁超聲監(jiān)測(cè)胃殘余量
- 上海市松江區(qū)市級(jí)名校2025屆數(shù)學(xué)高一上期末達(dá)標(biāo)檢測(cè)試題含解析
- 綜合實(shí)踐活動(dòng)教案三上
- 《新能源汽車電氣設(shè)備構(gòu)造與維修》項(xiàng)目三 新能源汽車照明與信號(hào)系統(tǒng)檢修
- 2024年新課標(biāo)《義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)》測(cè)試題(附含答案)
- 醫(yī)院培訓(xùn)課件:《靜脈中等長(zhǎng)度導(dǎo)管臨床應(yīng)用專家共識(shí)》
- 趣味知識(shí)問(wèn)答100道
- 中國(guó)國(guó)際大學(xué)生創(chuàng)新大賽與“挑戰(zhàn)杯”大學(xué)生創(chuàng)業(yè)計(jì)劃競(jìng)賽(第十一章)大學(xué)生創(chuàng)新創(chuàng)業(yè)教程
- 鋼管豎向承載力表
- 2024年新北師大版八年級(jí)上冊(cè)物理全冊(cè)教學(xué)課件(新版教材)
評(píng)論
0/150
提交評(píng)論