CentOS7 從零開始搭建一個jdk+tomcat的docker環(huán)境

搭建的基礎(chǔ)

  • Linux: CentOS-7-x86_64-DVD-1810.iso
  • Docker: docker-ce-18.03.1.ce
  • Java: jdk-8u231-linux-x64.tar.gz
  • Tomcat: apache-tomcat-8.5.50.tar.gz

安裝Docker

要搭建一個docker環(huán)境,必須要在服務(wù)器上先安裝docker纠拔,首先我們進行docker的安裝

Docker 要求 CentOS 系統(tǒng)的內(nèi)核版本高于 3.10知市,首先需要查看一下自己的linux內(nèi)核是否高于3.1碎节,滿足要求在進行下面的操作

uname -r

安裝需要的軟件包计福, yum-util 提供yum-config-manager功能砰琢,另外兩個是devicemapper驅(qū)動依賴的

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

配置鏡像源厦酬,國外鏡像一般很難訪問融撞,建議配置阿里云鏡像

中央鏡像

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

阿里鏡像

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

查看下倉庫中有哪些鏡像勉耀,選擇自己需要的鏡像版本

yum list docker-ce --showduplicates
image.png

這里安裝最新的穩(wěn)定版

yum install docker-ce-18.03.1.ce

安裝好后查看下docker運行狀態(tài)

systemctl status docker

如果沒有啟動docker指煎,啟動一下

systemctl start docker

也可以設(shè)置為docker開機自動啟動

systemctl enable docker

拉取Docker官方centos鏡像

查詢 centos 相關(guān)的鏡像

docker search centos
image.png

拉取docker鏡像

docker pull 鏡像名

因為我們是手工構(gòu)建自己的docker CentOS鏡像,這里我們拉取一個centos就可以了

image.png

查看下一下我們下載好的image

docker images
image.png

通過Dockerfile 構(gòu)建鏡像

  • docker commit命令(這里發(fā)布的鏡像沒有記錄過程)
  • docker build命令和Dockerfile文件(更為強大便斥、靈活和常用至壤,可以清晰的看到怎么構(gòu)建docker的步驟)

jdk和Tomcat就不通yum命令安裝,因為實際項目中進程有對應(yīng)的版本枢纠,這里我們上傳我們已經(jīng)下載好了的版本到服務(wù)器上像街,首先在服務(wù)器上指定的目錄創(chuàng)建dockerfile文件夾,把jdk和Tomcat上傳到這個文件夾

# cd /home/
# mkdir dockerFile

解壓兩個文件

# tar -zxvf apache-tomcat-8.5.50.tar.gz 
# tar -zxvf jdk-8u231-linux-x64.tar.gz 

在目錄下創(chuàng)建Dockerfile文件晋渺,然后vim書寫

touch Dockerfile 
image.png

Dockerfile 一些基本語法

  • FROM : 指定基礎(chǔ)鏡像镰绎,并且必須是第一條指令
  • MAINTAINER : 指定作者
  • RUN : 運行指定的命令
  • ADD : 復(fù)制命令,把文件復(fù)制到鏡像中,ADD會對壓縮文件(tar, gzip, bzip2, etc)做提取和解壓操作
  • COPY : 將主機的文件復(fù)制到鏡像內(nèi)些举,如果目的位置不存在跟狱,Docker會自動創(chuàng)建所有需要的目錄結(jié)構(gòu),但是它只是單純的復(fù)制户魏,并不會去做文件提取和解壓工作
  • ENV : 設(shè)置環(huán)境變量
  • EXPOSE : 功能為暴漏容器運行時的監(jiān)聽端口給外部
  • CMD : 指定容器啟動時運行的命令
  • ENTRYPOINT : 容器啟動時執(zhí)行的命令
  • WORKDIR : 在構(gòu)建鏡像時驶臊,指定鏡像的工作目錄挪挤,之后的命令都是基于此工作目錄,如果不存在关翎,則會創(chuàng)建目錄
    注意:CMD的命令會被 docker run 的命令覆蓋而ENTRYPOINT不會

Dockerfile 腳本

#指定操作的鏡像
FROM centos
# 維護者信息
MAINTAINER wangzhh

# 執(zhí)行命令:創(chuàng)建jdk存放目錄 mkdir -p 創(chuàng)建多級目錄
RUN mkdir -p /home/jdk
# 執(zhí)行命令:創(chuàng)建tomcat存放目錄 mkdir -p 創(chuàng)建多級目錄
RUN mkdir -p /home/tomcat

#將宿主機的jdk和tomcat拷貝到鏡像文件上面創(chuàng)建的目錄下扛门,這里注意是相對目錄,DockerFile的相對文件的路徑纵寝,我這里放置的是同級
COPY jdk1.8.0_231 /home/jdk/jdk1.8.0_231
COPY apache-tomcat-8.5.50 /home/tomcat/apache-tomcat-8.5.50

#設(shè)置環(huán)境變量
ENV JAVA_HOME=/home/jdk/jdk1.8.0_231
ENV JRE_HOME=$JAVA_HOME/jre
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH=/sbin:$JAVA_HOME/bin:$PATH

#暴露8080端口
EXPOSE 8080

執(zhí)行Dockerfile構(gòu)建Docker鏡像

docker build -t wangzhh/jdk_tomcat:20200309 . 

-t 設(shè)置tag名稱, 命名規(guī)則registry/image:tag(若不添加版本號,默認latest)
. 表示使用當前目錄下的Dockerfile文件论寨,注意語句后面有一個點

如下,我們就基于centos的基礎(chǔ)鏡像構(gòu)建了一個java+tomcat的鏡像


image.png

開放服務(wù)器8080端口

# firewall-cmd --zone=public --add-port=8080/tcp --permanent
# systemctl restart firewalld.service
# firewall-cmd --reload

加載鏡像測試一下

docker run -d -it -p 8080:8080 --name ecs_docker wangzhh/jdk_tomcat:20200309

如果上面構(gòu)建的時候沒有加:tag版本號 就是:20200309
可以docker run -d -it -p 8080:8080 --name ecs_docker wangzhh/jdk_tomcat啟動

Options Mean
-i 以交互模式運行容器爽茴,通常與 -t 同時使用
-t 為容器重新分配一個偽輸入終端葬凳,通常與 -i 同時使用
-d 后臺運行容器,并返回容器ID
-p 指定端口映射室奏,格式為:主機(宿主)端口:容器端口

進入docker

docker exec -it ecs_docker /bin/bash

測試下java版本


image.png

啟動tomcat瀏覽器訪問下


image.png
image.png

到這里搭建一個jdk+tomcat的images就結(jié)束了火焰,我們也可以打包成tar,讓其他人直接使用

docker  save  -o  tar包的名字  鏡像名
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末胧沫,一起剝皮案震驚了整個濱河市昌简,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌绒怨,老刑警劉巖纯赎,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異南蹂,居然都是意外死亡犬金,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門六剥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來佑附,“玉大人,你說我怎么就攤上這事仗考∫敉” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵秃嗜,是天一觀的道長权均。 經(jīng)常有香客問我,道長锅锨,這世上最難降的妖魔是什么叽赊? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮必搞,結(jié)果婚禮上必指,老公的妹妹穿的比我還像新娘。我一直安慰自己恕洲,他們只是感情好塔橡,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布梅割。 她就那樣靜靜地躺著,像睡著了一般葛家。 火紅的嫁衣襯著肌膚如雪户辞。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天癞谒,我揣著相機與錄音底燎,去河邊找鬼。 笑死弹砚,一個胖子當著我的面吹牛双仍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播桌吃,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼殊校,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了读存?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤呕屎,失蹤者是張志新(化名)和其女友劉穎让簿,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秀睛,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡尔当,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蹂安。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片椭迎。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖田盈,靈堂內(nèi)的尸體忽然破棺而出畜号,到底是詐尸還是另有隱情,我是刑警寧澤允瞧,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布简软,位于F島的核電站,受9級特大地震影響述暂,放射性物質(zhì)發(fā)生泄漏痹升。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一畦韭、第九天 我趴在偏房一處隱蔽的房頂上張望疼蛾。 院中可真熱鬧,春花似錦艺配、人聲如沸察郁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽绳锅。三九已至西饵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間鳞芙,已是汗流浹背眷柔。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留原朝,地道東北人驯嘱。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像喳坠,于是被迫代替她去往敵國和親鞠评。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內(nèi)容