docker 11 docker的commit操做

docker commit :表示提交一個容器的副本使之成爲新的鏡像。假如咱們在docker上運行了一個tomcat的容器,對Tomcat容器進行了修改操做,而後咱們將修改操做後的tomcat進行commit,就獲得了一個新的鏡像。java

命令格式:docker commit -m=「提交的描述信息」 -a="做者" 容器id 要建立的目標鏡像名:[標籤名]web

案例演示

 一、從hub上下載tomcat鏡像到本地並運行成功docker

說明: -p是指定端口號。-P是隨機端口號apache

[root@t-docker chenzx]# docker images tomcat
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
tomcat              latest              690cb3b9c7d1        7 days ago          463MB
[root@t-docker chenzx]# docker run -it -p 8888:8080 tomcat
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /docker-java-home/jre
30-Aug-2018 08:37:01.728 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
30-Aug-2018 08:37:01.736 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
30-Aug-2018 08:37:01.739 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 555 ms
[root@t-docker chenzx]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
5c83a1f3aea4        tomcat              "catalina.sh run"   8 minutes ago       Up 8 minutes        0.0.0.0:8888->8080/tcp   quirky_zhukovsky

 

[root@t-docker chenzx]# docker run -it -P tomcat
[root@t-docker chenzx]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
54a817e3ce05        tomcat              "catalina.sh run"   21 seconds ago      Up 19 seconds       0.0.0.0:32768->8080/tcp   confident_leavitt

 二、故意刪除上一步鏡像產生的tomcat容器文檔centos

[root@t-docker chenzx]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
54a817e3ce05        tomcat              "catalina.sh run"   17 minutes ago      Up 17 minutes       0.0.0.0:32768->8080/tcp   confident_leavitt
[root@t-docker chenzx]# docker exec -it 54a817e3ce05 /bin/bash
root@54a817e3ce05:/usr/local/tomcat# cd webapps/
root@54a817e3ce05:/usr/local/tomcat/webapps# ls -l
total 4
drwxr-x---  3 root root  306 Aug 23 00:47 ROOT
drwxr-x--- 14 root root 4096 Aug 23 00:47 docs
drwxr-x---  6 root root   83 Aug 23 00:47 examples
drwxr-x---  5 root root   87 Aug 23 00:47 host-manager
drwxr-x---  5 root root  103 Aug 23 00:47 manager
root@54a817e3ce05:/usr/local/tomcat/webapps# rm -rf docs/
root@54a817e3ce05:/usr/local/tomcat/webapps# ls -l
total 0
drwxr-x--- 3 root root 306 Aug 23 00:47 ROOT
drwxr-x--- 6 root root  83 Aug 23 00:47 examples
drwxr-x--- 5 root root  87 Aug 23 00:47 host-manager
drwxr-x--- 5 root root 103 Aug 23 00:47 manager

 三、經過上一步,當前的tomcat是沒有doc目錄的容器,以他爲模板commit一個沒有doc的tomcat新鏡像zhenzx/tomcat02,zhenxz就是本身取名的命名空間tomcat

[root@t-docker chenzx]# docker ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                     NAMES
54a817e3ce05        tomcat              "catalina.sh run"   26 minutes ago      Up 26 minutes       0.0.0.0:32768->8080/tcp   confident_leavitt
[root@t-docker chenzx]# docker commit -a='xiaoxin' -m='del tomcat docs' 54a817e3ce05 chenzx/tomcat02:1.2
sha256:24c3d89d4d043e4fb97f0cf4f3b94bcf96b5600a062fc8de4e39a7763d20badf
[root@t-docker chenzx]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
chenzx/tomcat02     1.2                 24c3d89d4d04        7 seconds ago       463MB
tomcat              latest              690cb3b9c7d1        7 days ago          463MB

 把正在運行的容器所有刪除bash

[root@t-docker chenzx]# docker rm -f $(docker ps -q)
54a817e3ce05
[root@t-docker chenzx]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

 以咱們自定義的鏡像生成一個新的容器app

[root@t-docker chenzx]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
chenzx/tomcat02     1.2                 24c3d89d4d04        6 minutes ago       463MB
tomcat              latest              690cb3b9c7d1        7 days ago          463MB
centos              latest              5182e96772bf        3 weeks ago         200MB
[root@t-docker chenzx]# 
[root@t-docker chenzx]# docker run -it -P chenzx/tomcat02:1.2 
[root@t-docker chenzx]# docker ps
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                     NAMES
c6c68b224e84        chenzx/tomcat02:1.2   "catalina.sh run"   24 seconds ago      Up 24 seconds       0.0.0.0:32770->8080/tcp   awesome_sammet

 鏈接後能夠看到,咱們用自定義的tomcat1.2鏡像沒有doc目錄webapp

六、啓動咱們新的鏡像並和原來的鏡像對比tcp

啓動chenzx/tomcat1.2,它沒有doc目錄

啓動原來的tomcat,它有doc目錄

[root@t-docker chenzx]# docker run -d -p 6666:8080 tomcat
23b4ec6f24b854f682631c5a9b6bcfc0c685dbec46d1867faea4b534f5791452
[root@t-docker chenzx]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
23b4ec6f24b8        tomcat              "catalina.sh run"   5 seconds ago       Up 4 seconds        0.0.0.0:6666->8080/tcp   flamboyant_almeida

 

 

 

來自 「 ITPUB博客 」 ,連接:http://blog.itpub.net/28916011/viewspace-2213229/,如需轉載,請註明出處,不然將追究法律責任

相關文章
相關標籤/搜索