您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關docker中鏡像的commit怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
docker commit:表示提交容器副本使之成為一個新的鏡像。假設我們在docker中運行了一個Tomcat容器,我們在tomcat容器中做了一些我們自定義的修改,然后我們這個修改的tomcat容器進行commit,這樣我們就形成了一個新的自定義鏡像。
命令格式:docker commit -m="提交的描述信息" -a="作者" 容器id 要創建的目標鏡像名:[標簽名]
案例演示
1、從hub上下載tomcat鏡像到本地并成功運行
說明:-p是指定端口,-P是隨機端口
[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
2、故意刪除上一步鏡像生成的tomcat容器文檔
[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
3、通過上一步,當前的Tomcat運行實例是一個沒有文檔內容doc目錄的容器,以它為模板commit一個沒有doc的tomcat新鏡像chenzx/tomcat02,chenzx就是自己取的命名空間
[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
4、把正在運行的容器全部刪除
[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
5、以我們自定義的鏡像生成一個新的容器
[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
可以看到,我們用自定義的jtomcat1.2鏡像,生成的容器里面沒有doc目錄
6、啟動我們的新鏡像并和原來的鏡像對比
啟動chenzx/tomcat1.2,它沒有docs目錄
啟動原來tomcat。它有docs目錄
7、以守護式方式啟動tomcat容器(-d參數)
[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
關于“docker中鏡像的commit怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。