詳解在docker中制作自己的JDK+tomcat鏡像
也許你和我一樣,想要自己親手制作一個(gè)熱乎乎的鏡像,最好自己指定JDK版本和tomcat版本。當(dāng)然,這是可以的。
根據(jù)我的水平,目前有兩種辦法可以制作我想要的這個(gè)鏡像。來(lái),我們先說(shuō)簡(jiǎn)單點(diǎn)的。
方式一
首先,準(zhǔn)備好想要的jdk和tomcat,另外,我們需要?jiǎng)?chuàng)建一個(gè)Dockerfile文件,什么,你說(shuō)你不知道Dockerfile是什么也不會(huì)寫Dockerfile文件?哦,那也沒(méi)關(guān)系吧,你Ctrl+C就好了。下面展示一個(gè)Dockerfile文件的完整內(nèi)容:
FROM ubuntu:14.10 MAINTAINER linx #把java與tomcat添加到容器中 ADD jdk-8u31-linux-x64.tar.gz /usr/local/ ADD apache-tomcat-8.0.20.tar.gz /usr/local/ #配置java與tomcat環(huán)境變量 ENV JAVA_HOME /usr/local/jdk1.8.0_31 ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar ENV CATALINA_HOME /usr/local/apache-tomcat-8.0.20 ENV CATALINA_BASE /usr/local/apache-tomcat-8.0.20 ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin #容器運(yùn)行時(shí)監(jiān)聽(tīng)的端口 EXPOSE 8080
當(dāng)然,你還是要修改一點(diǎn)點(diǎn)的,就是jdk和tomcat的版本啊,然后版本后面對(duì)應(yīng)的路徑啊,其余的就可以不改了。
然后呢,jdk和tomcat和這個(gè)文件需要放在同一個(gè)路徑中。
在然后,在當(dāng)前路徑中召喚出終端,輸入
Docker build –t linx/tomcat
這個(gè)命令會(huì)遵從Dockerfile文件的規(guī)則構(gòu)建鏡像。猴子造完了之后,run起來(lái),使用下面的命令啟動(dòng)tomcat
./usr/local/apache-tomcat-8.0.20/bin/startup.sh
OK,訪問(wèn)8080端口吧,可以看到熟悉的那只貓了。
過(guò)程就這么多,開(kāi)始題外話:容器開(kāi)放了8080端口,但是你訪問(wèn)容器里面的tomcat并不是用8080哦,你懂的,容器的端口需要你主動(dòng)映射到宿主機(jī)的某個(gè)端口的,算了,告訴你一個(gè)命令吧,來(lái)做端口映射:
#sudo docker run -d -p 5000:8080 training/webapp
啟動(dòng)一個(gè)容器的時(shí)候可以借助于-p參數(shù)來(lái)將8080端口映射成主機(jī)的5000端口,這樣你訪問(wèn)主機(jī)的5000端口就到容器的8080端口啦。
還有,實(shí)際上,Dockerfile文件幫你完成了容器里面環(huán)境變量的設(shè)置啊等等內(nèi)容,其實(shí)還可以做更多更強(qiáng)大的事,你必須一定要自己查文檔看!
方式二
雖然麻煩,還是提一下,畢竟也是非常正常的途徑。
首先呢,下一個(gè)隨便個(gè)什么系統(tǒng)的空的鏡像吧,然后run起來(lái),進(jìn)去,其實(shí)你此時(shí)面對(duì)的就是一個(gè)剛裝了新系統(tǒng)的主機(jī)啊,所以其實(shí)你又懂了,開(kāi)始下載想要的jdk和tomcat吧,哦,原來(lái)你的主機(jī)上已經(jīng)下好了,那好,這樣:
docker run -i -t -v /root/software/:/mnt/software/ 25c5298b1a36 /bin/bash
上面這個(gè)方式來(lái)啟動(dòng)容器可以實(shí)現(xiàn)將你的software文件夾掛載到容器的mnt/software/目錄下,所以呢,等你進(jìn)去容器,進(jìn)到那個(gè)文件夾就已經(jīng)看到你想要的jdk和tomcat了。
好了,開(kāi)始解壓吧,開(kāi)始設(shè)置環(huán)境變量吧。什么,不知道Linux中怎么設(shè)置環(huán)境變量?那就不弄了吧。
vi ~/.bashrc,進(jìn)入vi編輯模式 在末尾添加如下配置 export JAVA_HOME=/opt/jdk/bin export PATH=$PATH:$JAVA_HOME 輸入wq退出vi界面 //讓環(huán)境變量生效 source ~/.bashrc
上面一小段linux設(shè)置環(huán)境變量的方法,僅供參考,更多的方式更強(qiáng)大的功能你必須要查文檔!
所以呢,我們現(xiàn)在是設(shè)置好了jdk和tomcat的環(huán)境變量了對(duì)吧,還沒(méi)好?哦,我們接著說(shuō)下一步,這個(gè)時(shí)候不是已經(jīng)在容器里面設(shè)置好了環(huán)境變量了嗎,可以輸入Java -version測(cè)一下好使了沒(méi)有。然后輸入
exit
退出容器,此時(shí)容器處于暫停狀態(tài),再然后
docker ps -a,列出所有的容器
看到剛剛exit的容器,記住容器id,因?yàn)槲覀円鶕?jù)該id創(chuàng)建出新的自己的鏡像,使用如下命令:
docker commit 57c312bbaad1 myName/javaweb
然后我們就創(chuàng)建出了一個(gè)名叫javaweb的鏡像了,里面的jdk和tomcat都是我們指定的。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Docker的安裝方法及運(yùn)行Docker Swarm模式的使用
本文給大家簡(jiǎn)單介紹docker的安裝以及1.12版本的swarm模式的使用,包括docker的安裝和配置,對(duì)docker swarm簡(jiǎn)單使用感興趣的朋友一起看看吧2016-11-11Docker制作MySQL鏡像并使用`/docker-entrypoint-initdb.d/`問(wèn)題
這篇文章主要介紹了Docker制作MySQL鏡像并使用`/docker-entrypoint-initdb.d/`問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05Docker安裝部署Net Core實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Docker安裝部署Net Core實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12Ubuntu15.10安裝docker和docker-compose教程
這篇文章主要介紹了Ubuntu15.10安裝docker和docker-compose的教程,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03docker搭建本地私有倉(cāng)庫(kù)的實(shí)現(xiàn)
有時(shí)候使用Docker Hub這樣的公共倉(cāng)庫(kù)可能不方便,這種情況下用戶可以使用registry創(chuàng)建一個(gè)本地倉(cāng)庫(kù)供私人使用,本文主要介紹了docker搭建本地私有倉(cāng)庫(kù)的實(shí)現(xiàn),感興趣的可以了解一下2023-12-12Docker安裝mysql教程以及解決mysqld: Can‘t read dir&nbs
本文詳細(xì)介紹了如何通過(guò)Docker來(lái)安裝和配置MySQL數(shù)據(jù)庫(kù),包括拉取MySQL鏡像、啟動(dòng)MySQL容器、配置MySQL、解決常見(jiàn)錯(cuò)誤等步驟,提供了詳盡的命令和參數(shù)說(shuō)明,幫助用戶順利完成MySQL的安裝和配置,文中還提到了如何處理MySQL容器啟動(dòng)時(shí)遇到的“無(wú)法讀取目錄”2024-10-10一文詳解如何在Ubuntu系統(tǒng)中安裝docker
這篇文章主要為大家詳細(xì)介紹了在Ubuntu操作系統(tǒng)上安裝Docker的步驟,以便我們可以開(kāi)始使用Docker來(lái)構(gòu)建和運(yùn)行容器化應(yīng)用程序,希望對(duì)大家有所幫助2024-03-03Docker Volumn容器間共享數(shù)據(jù)的實(shí)現(xiàn)
這篇文章主要介紹了Docker Volumn容器間共享數(shù)據(jù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01輕量級(jí)對(duì)象存儲(chǔ)服務(wù)minio安裝及瀏覽器使用教程
本次介紹了minio的安裝及瀏覽器中的簡(jiǎn)單使用,對(duì)輕量級(jí)對(duì)象存儲(chǔ)服務(wù)minio安裝及使用教程感興趣的朋友一起看看吧2021-10-10