上一篇文章寫了docker的安裝,以及一些命令,這一節,我們看下如何創建自己的鏡像,以及安裝一套java Web的運行環境。(這一次在windows環境下進行,docker已經提供了windows的版本。)
1獲取一個用來制作我們鏡像的基礎鏡像
windows版本的docker與linux的完全一致,所有的命令也都一樣,首先,我們先獲取基礎鏡像,這里用centos鏡像作為基礎鏡像。
docker pull centos
獲取到centos鏡像后,我們進入到鏡像
PS C:\Users\Di> docker run -i -t -v /e/docker/:/mnt/soft/ 67591570dd29 /bin/bash
參數介紹:
-i:表示以“交互模式”運行容器
-t:表示容器啟動后會進入其命令行
-v:表示需要將本地哪個目錄掛載到容器中,格式:-v <宿主機目錄>:<容器目錄>
67591570dd29 是鏡像id也可以用鏡像名稱。/bin/bash 表示進入到鏡像后要運行命令行。
進入到鏡像后如下:
這時,就可以在鏡像中進行操作了。
1.把linux版本的jdk,tomcat都放到剛剛宿主機的掛載目錄下
如我剛剛的目錄是e盤下的docker目錄。
2.現在進入到docker剛剛掛載的目錄/mnt/soft/
[root@a67e130865d6 soft]# cd /mnt/soft
可以查看到此目錄下在宿主機的目錄下剛剛放的文件
3.在鏡像中創建一個目錄。
[root@a67e130865d6 soft]# mkdir /app
4.將掛載目錄下的tomcat文件和jdk文件cp到剛剛建好的目錄下
[root@a67e130865d6 soft]# cp -R * /app
5.進入到剛剛創建的目錄下,解壓tomcat和jdk壓縮包
解壓縮安裝文件,獲取到tomcat和jdk的壓縮包。
6.安裝tomcat
jdk解壓縮就可以用,不需要配置,tomcat需要配置一下啟動腳本,將jdk環境變量添加到tomcat的啟動腳本中,當然,也可以設置全局變量,將JAVA_HOME設置為全局變量, 就不需要修改tomcat的啟動腳本了。
[root@a67e130865d6 app]# cd apache-tomcat-6.0.44/bin
[root@a67e130865d6 bin]# vi catalina.sh
添加環境變量到catalina.sh文件中
JAVA_HOME=/app/jdk1.6.0_31
JRE_HOME=/app/jdk1.6.0_31/jre
保存退出。
7.設置tomcat啟動腳本
在/app/目錄下,新建run.sh
文件內容如下:
#!/bin/bash
sh /app/apache-tomcat-6.0.44/bin/catalina.sh run
退出編輯,給此執行文件授權
[root@a67e130865d6 app]# chmod a+x run.sh
8.退出容器。使用exit命令。
此時在宿主機下,運行如下命令,查看運行的鏡像
PS C:\Users\Di> docker ps -a
9.創建自己的docker鏡像
這里有兩種方式,一種是通過commit命令的方式,另一種是通過dockerfile build方式。今天只列舉commit命令的方式
PS C:\Users\Di> docker commit a67e130865d6 didi/javaweb:0.1
其中a67e130865d6 是鏡像中容器的id。 后面的didi/javaweb是鏡像名稱,0.1是tag標簽。
執行完成后,有必要檢查一下自己的鏡像是否創建成功。
發現已經有了。
10.啟動自己的docker容器。
docker run -d -p 8011:8088 --name didiweb 83fd80f18540 /app/run.sh
-d表示靜默運行。
-p表示宿主機和容器的端口映射,此處示例是把宿主機的8011端口映射到docker容器的8088端口。
--name就是一個別名,隨便起就可以
83fd80f18540 是鏡像id
/app/run.sh是剛剛我們創建的運行腳本。
啟動完成,打開瀏覽器驗證一下吧。
http://127.0.0.1:8011
下一篇我們講一下用dockerfile的方式發布自己的鏡像。