docker系列備忘(2) docker創(chuàng)建自己的鏡像以及javaweb

上一篇文章寫了docker的安裝,以及一些命令,這一節(jié),我們看下如何創(chuàng)建自己的鏡像,以及安裝一套java Web的運(yùn)行環(huán)境。(這一次在windows環(huán)境下進(jìn)行,docker已經(jīng)提供了windows的版本。)

1獲取一個(gè)用來制作我們鏡像的基礎(chǔ)鏡像

windows版本的docker與linux的完全一致,所有的命令也都一樣,首先,我們先獲取基礎(chǔ)鏡像,這里用centos鏡像作為基礎(chǔ)鏡像。

docker pull centos

獲取到centos鏡像后,我們進(jìn)入到鏡像

PS C:\Users\Di> docker run -i -t -v /e/docker/:/mnt/soft/ 67591570dd29 /bin/bash

參數(shù)介紹:
-i:表示以“交互模式”運(yùn)行容器
-t:表示容器啟動(dòng)后會進(jìn)入其命令行
-v:表示需要將本地哪個(gè)目錄掛載到容器中,格式:-v <宿主機(jī)目錄>:<容器目錄>
67591570dd29 是鏡像id也可以用鏡像名稱。/bin/bash 表示進(jìn)入到鏡像后要運(yùn)行命令行。

進(jìn)入到鏡像后如下:

圖片.png

這時(shí),就可以在鏡像中進(jìn)行操作了。

1.把linux版本的jdk,tomcat都放到剛剛宿主機(jī)的掛載目錄下

如我剛剛的目錄是e盤下的docker目錄。

圖片.png

2.現(xiàn)在進(jìn)入到docker剛剛掛載的目錄/mnt/soft/

[root@a67e130865d6 soft]# cd /mnt/soft

可以查看到此目錄下在宿主機(jī)的目錄下剛剛放的文件

圖片.png

3.在鏡像中創(chuàng)建一個(gè)目錄。

[root@a67e130865d6 soft]# mkdir /app

4.將掛載目錄下的tomcat文件和jdk文件cp到剛剛建好的目錄下

[root@a67e130865d6 soft]# cp -R * /app

5.進(jìn)入到剛剛創(chuàng)建的目錄下,解壓tomcat和jdk壓縮包

解壓縮安裝文件,獲取到tomcat和jdk的壓縮包。

6.安裝tomcat

jdk解壓縮就可以用,不需要配置,tomcat需要配置一下啟動(dòng)腳本,將jdk環(huán)境變量添加到tomcat的啟動(dòng)腳本中,當(dāng)然,也可以設(shè)置全局變量,將JAVA_HOME設(shè)置為全局變量, 就不需要修改tomcat的啟動(dòng)腳本了。

[root@a67e130865d6 app]# cd apache-tomcat-6.0.44/bin
[root@a67e130865d6 bin]# vi catalina.sh

添加環(huán)境變量到catalina.sh文件中

JAVA_HOME=/app/jdk1.6.0_31
JRE_HOME=/app/jdk1.6.0_31/jre

保存退出。

7.設(shè)置tomcat啟動(dòng)腳本

在/app/目錄下,新建run.sh
文件內(nèi)容如下:

#!/bin/bash
sh /app/apache-tomcat-6.0.44/bin/catalina.sh run

退出編輯,給此執(zhí)行文件授權(quán)

[root@a67e130865d6 app]# chmod a+x run.sh

8.退出容器。使用exit命令。

此時(shí)在宿主機(jī)下,運(yùn)行如下命令,查看運(yùn)行的鏡像

PS C:\Users\Di> docker ps -a
圖片.png

9.創(chuàng)建自己的docker鏡像

這里有兩種方式,一種是通過commit命令的方式,另一種是通過dockerfile build方式。今天只列舉commit命令的方式

PS C:\Users\Di> docker commit a67e130865d6 didi/javaweb:0.1

其中a67e130865d6 是鏡像中容器的id。 后面的didi/javaweb是鏡像名稱,0.1是tag標(biāo)簽。
執(zhí)行完成后,有必要檢查一下自己的鏡像是否創(chuàng)建成功。

圖片.png

發(fā)現(xiàn)已經(jīng)有了。

10.啟動(dòng)自己的docker容器。

docker run -d -p 8011:8088 --name didiweb 83fd80f18540 /app/run.sh

-d表示靜默運(yùn)行。
-p表示宿主機(jī)和容器的端口映射,此處示例是把宿主機(jī)的8011端口映射到docker容器的8088端口。
--name就是一個(gè)別名,隨便起就可以
83fd80f18540 是鏡像id
/app/run.sh是剛剛我們創(chuàng)建的運(yùn)行腳本。

啟動(dòng)完成,打開瀏覽器驗(yàn)證一下吧。
http://127.0.0.1:8011
下一篇我們講一下用dockerfile的方式發(fā)布自己的鏡像。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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