1. 程式人生 > >Docker常見命令以及製作tomcat映象釋出專案

Docker常見命令以及製作tomcat映象釋出專案

見官網

2.安裝

檢視是否已經安裝的Docker軟體包
sudo yum list installed | grep docker
如果已安裝不想要docker則解除安裝掉:
sudo yum -y remove docker-io.x86_64

2.1 Centos 7.X版本

yum install docker

2.2 Centos 6.X版本

Centos6.7的標準yum源中已經沒有Docker的安裝包了,這時,我們需要安裝EPEL
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install docker-io
直到看到Complete! 基本上即為成功
使用docker –v 檢視版本

3. 啟動

3.1 Centos 7.X版本

啟動/停止/重啟/檢視狀態/開機啟動  
systemctl  start/stop/restart/status/enable  docker

3.2 Centos 6.X版本

啟動/停止/重啟/檢視狀態/開機啟動  
Service  docker  start/stop/restart/status/enable

4. 映象操作

列出本地所有映象 docker images   
搜尋網路映象 docker search +關鍵字 
拉取映象  docker pull +關鍵字
刪除單個映象 docker rmi 映象id       
刪除所有映象 docker rmi `docker images -q`
注:因為拉取的映象為國外映象,下載速度會特別慢,所以推薦使用國內映象,國內映象地址有很多.例如:

5. 容器操作

檢視正在執行容器 docker ps    
檢視所有容器 docker ps -a   
檢視最後一次執行的容器 docker ps -l    
檢視停止容器 docker ps -f  status=exited
啟動已存在容器 docker start <CONTAINER ID/NAME>
關閉已存在容器 docker stop <CONTAINER ID/NAME>

5.1 容器的建立

使用命令 docker run
引數說明:
            -i : 表示執行容器
            -t : 標識同期啟動後會進入其命令列,即為建立一個互動式容器.
            -d : 不會自動登入,容器後臺執行,即為建立一個守護式容器.
            --name : 為建立的容器命令
            -v : 表示目錄對映關係 後面接引數 宿主機目錄:容器中的目錄
            -p : 表示埠對映關係
            注 : -v -p 可以在建立容器是多次使用 做多個目錄或埠對映, 
                     推薦使用-v –p,
                  使用-v後,在宿主機上修改檔案,就共享到容器上了.
                  使用-p後,可以訪問宿主機的ip:埠就可以訪問容器.

5.2 互動式容器

可以簡單的把互動式容器理解為前臺啟動,把守護式容器理解為後臺啟動
建立一個互動式容器 並取名為 myredis:
docker -it --name=mybatis -p 6379:6379 \
daocloud.io/daocloud/dao-redis: master-init
 建立成功後,通過docker ps命令查詢,可以看到啟動的容器,狀態為啟動狀態

使用exit命令 退出當前容器

互動式容器使用exit退出後 容器變成關機狀態

5.3 守護式容器

建立一個互動式容器 並取名為 mytomcat:
docker run -di --name=mytomcat4 -p 8080:8080 \
-v /usr/local/tomcat:/usr/local/tomcat/webapps \
--privileged=true \
daocloud.io/library/tomcat:latest 
登入守護式容器的方法
docker ecex –it 容器名/容器id /bin/bash
使用exit命令 退出當前容器
守護式容器使用exit 退出會變成後臺執行狀態
使用ps檢視仍然可以看到容器正在執行
後面接/bin/bash 命令入容器內部,可以檢視容器內部的目錄結構

5.4 檔案拷貝

docker cp 需要拷貝到容器的檔案或目錄 容器名稱:容器目錄
可以宿主機拷貝到容器,也可以容器拷貝到宿主機,不可以容器拷貝到容器
(docker cp 原檔案目錄 目標目錄)

5.5 埠對映、目錄掛載

-v -p

如果共享的是多級目錄,可能會出現許可權不足的提示,

需要新增引數--privileged=true來解決許可權問題

5.6 檢視容器IP

檢視容器執行時的各種引數:
docker imspect mytomcat77
只檢視該容器的ip地址:
docker imspect 
--format=’{.NetworkSrttings.IPAddress}}’ mytomcat77

5.7刪除容器

刪除指定容器 
docker rm 容器名/id
刪除所有容器
Docker rm `docker ps –a –q`
注: 只能刪除已經停止的容器

6. 製作映象

6.1準備工作

6.1.1 準備JDK+TOMCAT軟體

​​將apache-tomcat-7.0.57.tar.gz和jdk-7u75-linux-x64.tar.gz,儲存於宿主機(Linux機器的本地目錄/usr/docker0312下)。為了製作時更加快捷,我直接在本地解壓了兩個軟體,並將目錄名字吻別重新命名為jdk和tomcat。

根據自己需求,自己修改tomcat的配置檔案

6.1.2 拉取Centos6映象

​​因為拉去國外網站的映象比較慢,所以我們選擇拉取:

docker pull daocloud.io/centos:6

6.2編寫Dockerfile檔案

6.2. 編寫Dockerfile檔案​​

#---------------------------------------------------------------------

#This is a comment註釋

#使用基礎映象daocloud.io/centos:6

FROM centos:6
#
指定映象建立者資訊

MAINTAINER lcs5 <<A href="[email protected]">[email protected]>

#切換映象的目錄,進入/usr目錄(基礎映象是一個linux系統,可參照linux檢視相應目錄)
WORKDIR /usr

#在/usr/下建立java目錄,用來存放jdk
RUN mkdir java

#切換映象的目錄至/usr/java
WORKDIR /usr/java

#在/usr/java下建立jdk目錄,用來存放jdk檔案
RUN mkdir jdk

#切換映象的目錄至/usr/java/jdk
WORKDIR /usr/java/jdk

#將宿主機的jdk目錄下的全部檔案考入至映象的/usr/java/jdk目錄下
ADD jdk /usr/java/jdk

#切換映象的目錄至/opt
WORKDIR /opt

#在/opt下建立tomcat目錄,用來存放tomcat檔案
RUN mkdir tomcat

#將宿主機的tomcat目錄下的全部檔案考入至映象的/opt/tomcat目錄下
ADD tomcat /opt/tomcat

#設定環境變數

ENV JAVA_HOME=/usr/java/jdk
ENV JAVA_BIN=/usr/java/jdk/bin
ENV PATH=$PATH:$JAVA_HOME/bin
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#設定容器啟動時執行的操作

CMD /opt/tomcat/bin/catalina.sh run

#---------------------------------------------------------------------

以上就是Dockerfile檔案的內容,將該檔案存入宿主機當前目錄/usr/docker0312下,與jdk,tomcat同目錄。

6.3 製作映象

6.3 製作映象

使用命令:dockerbuild -t centos_jdk7_tomcat7_lcs:latest .

其中centos_jdk7_tomcat7_lcs為映象名稱,latest為映象tag

映象製作完成後,使用docker images命令,可以檢視到當前映象

7. 備份與恢復

儲存容器為映象 docker commit 容器名 映象名
映象儲存為檔案 docker save –o 檔名 映象名
            儲存為檔案後可以拷貝,備份,儲存到本地等操作
檔案恢復成映象 docker load –i 檔名
            恢復時不需要指定映象名,檔案中有儲存