docker建立web映象

gxlineji發表於2016-09-26
docker建立web映象

(1)把tomcat jdk放到本地/home/software目錄下,然後執行:

(2)docker run -t -i -v /home/software/:/opt/data  --name mk_tomcat chug/ubuntu12.10x64 /bin/bash

此命令執行一個容器chug/ubuntu12.10x64,並把本地目錄“/home/software/"目錄掛載到/opt/data目錄下。

(3)在上一個啟動的容器內,安裝配置TOMCAT和JDK。
  配置JDK環境
export JAVA_HOME=/opt/jdk
export PATH=$PATH:$JAVA_HOME
配置TOMCAT
 配置啟動tomcat指令碼

vi /root/run.sh
#!/bin/bash
source ~/.bashrc
sh /opt/app/tomcat7/bin/catalina.sh run

(4)建立 Java Web 映象
使用以下命令,根據某個“容器 ID”來建立一個新的“映象”:

docker commit dc2302fa708a gg/centos6.5-tomcat7:001
該容器的 ID 是“57c312bbaad1”,
所建立的映象名是“gg/centos6.5-tomcat7”,
映象TAG:001
隨後可使用映象來啟動 Java Web 容器。

(5)啟動 Java Web 容器
有必要首先使用docker images命令,檢視當前所有的映象:
docker run -d -p 18080:8080 --name javaweb gg/javaweb:0.1 /root/run.sh

解釋:
-d:表示以“守護模式”執行/root/run.sh指令碼,此時 Tomcat 控制檯不會出現在輸出終端上。 
-p:表示宿主機與容器的埠對映,此時將容器內部的 8080 埠對映為宿主機的 58080 埠,這樣就向外界暴露了 58080 埠,可透過 Docker 網橋來訪問容器內部的 8080 埠了。 
--name:表示容器名稱,用一個有意義的名稱命名即可。 

----------------------方法二--------------------


(1)把TOMCAT 和JDK放在目錄/home/software下

(2)在/home/software下建立Dockerfile檔案
[root@p1docker software]# more Dockerfile 
FROM chug/ubuntu12.10x64
#install jdk
ADD jdk1.8.0_45 /opt/jdk1.8.0_45
ENV JAVA_HOME /opt/jdk1.8.0_45
ENV PATH $PATH:$JAVA_HOME/bin
RUN mkdir -p "$JAVA_HOME"

#install tomcat
ADD apache-tomcat-7.0.64 /opt/apache-tomcat
ENV CATALINA_HOME /opt/apache-tomcat
ENV PATH $CATALINA_HOME/bin:$PATH
RUN mkdir -p "$CATALINA_HOME"
WORKDIR $CATALINA_HOME
EXPOSE 8080
CMD [" /opt/apache-tomcat/bin/startup.sh","-D"]

(3)建立映象
docker build -t ns/tomcat .
docker run -itd  -p 18080:8080 --name=javaweb  ns/tomcat 
----------------------------------------------------------------------------------
匯出容器
如果要匯出本地某個容器,可以使用 docker export 命令。

匯入容器快照
可以使用 docker import 從容器快照檔案中再匯入為映象,例如

注:使用者既可以使用 docker load 來匯入映象儲存檔案到本地映象庫,也可以使用 docker import 來匯入一個容器快照到本地映象庫。這兩者的區別在於容器快照檔案將丟棄所有的歷史記錄和後設資料資訊(即僅儲存容器當時的快照狀態),而映象儲存檔案將儲存完整記錄,體積也要大。此外,從容器快照檔案匯入時可以重新指定標籤等後設資料資訊。
--------------------------------------------------------------------------------

倉庫(Repository)是集中存放映象的地方。
一個容易混淆的概念是註冊伺服器(Registry)。實際上註冊伺服器是管理倉庫的具體伺服器,每個伺服器上可以有多個倉庫,而每個倉庫下面有多個映象。從這方面來說,倉庫可以被認為是一個具體的專案或目錄。例如對於倉庫地址 dl.dockerpool.com/ubuntu 來說,dl.dockerpool.com 是註冊伺服器地址,ubuntu 是倉庫名。
大部分時候,並不需要嚴格區分這兩者的概念。

---------------------------
資料卷容器:
建立資料卷:
docker run -d -v /home/software/datavol/ --name webdata1 richxsl/rhel6.5 /bin/bash
docker run -d -v /opt/apache-tomcat/logs/ --name webdata1 richxsl/rhel6.5 /bin/bash
使用資料卷:
docker run -itd  -p 28080:8080 --volumes-from=webdata2 --name=javaweb2  ns/tomcat
docker run -itd  -p 38080:8080 --volumes-from=webdata2 --name=javaweb3  ns/tomcat

docker exec javaweb2  ll /opt/apache-tomcat/logs

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10995764/viewspace-2125581/,如需轉載,請註明出處,否則將追究法律責任。

相關文章