docker?commit命令的具體使用
docker commit 命令 : 用于將一個(gè)鏡像進(jìn)行提交成一個(gè)新的副本
命令格式:
docker commit -m="描述信息" -a="作者" 容器id 目標(biāo)鏡像名: [TAG]
做個(gè)實(shí)例:
查看本地鏡像
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx latest 605c77e624dd 2 months ago 141MB tomcat 9.0 b8e65a4d736d 2 months ago 680MB tomcat latest fb5657adc892 2 months ago 680MB mysql latest 3218b38490ce 2 months ago 516MB hello-world latest feb5d9fea6a5 5 months ago 13.3kB centos latest 5d0da3dc9764 5 months ago 231MB
我們之前的Tomcat服務(wù)器的部署是使用的最新的latest
我們就使用Tomcat 9.0 來(lái)做這個(gè)
這是它的前臺(tái)運(yùn)行結(jié)果
做一個(gè)端口映射:
[root@localhost ~]# docker run -it -p 8080:8080 tomcat Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/openjdk-11 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Using CATALINA_OPTS: NOTE: Picked up JDK_JAVA_OPTIONS: --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED 07-Mar-2022 10:59:56.387 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version name: Apache Tomcat/10.0.14 07-Mar-2022 10:59:56.390 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Dec 2 2021 22:01:36 UTC 07-Mar-2022 10:59:56.390 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version number: 10.0.14.0 07-Mar-2022 10:59:56.391 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Linux 07-Mar-2022 10:59:56.392 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 3.10.0-862.el7.x86_64 07-Mar-2022 10:59:56.392 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64 07-Mar-2022 10:59:56.392 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: /usr/local/openjdk-11 07-Mar-2022 10:59:56.392 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 11.0.13+8
在前臺(tái)運(yùn)行的同時(shí),我們來(lái)查看一下正在運(yùn)行的容器
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 5e73948b0078 tomcat "catalina.sh run" 5 minutes ago Up 5 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp happy_feistel 155ead9f80cc tomcat "catalina.sh run" 5 hours ago Up 5 hours 0.0.0.0:3355->8080/tcp, :::3355->8080/tcp tomcat01 2257878e8b61 nginx "/docker-entrypoint.…" 6 hours ago Up 5 hours 0.0.0.0:443->80/tcp, :::443->80/tcp nginx01 6d6fa6a4c6d7 5d0da3dc9764 "/bin/bash" 6 hours ago Up 6 hours nice_panini [root@localhost ~]#
這個(gè)時(shí)候,使用瀏覽器來(lái)訪問(wèn)一下Tomcat
這結(jié)果是正常的,這是因?yàn)殓R像原本就不完整
在這樣的情況下,如果終止掉前臺(tái)的進(jìn)程
這個(gè)時(shí)候,瀏覽器的訪問(wèn)就會(huì)報(bào)錯(cuò):
如果想要在終止前臺(tái)進(jìn)程的同時(shí),想讓瀏覽器的訪問(wèn)不報(bào)錯(cuò)
就要這樣做:
[root@localhost ~]# docker run -d -p 8080:8080 --name tomcat04 tomcat:9.0 c9a2f98234c79d94e0ccc67b5a529eace1ec1d2211b1b7088a16a45c62134ae8 [root@localhost ~]#
瀏覽器再次訪問(wèn)
恢復(fù)正常
我們接下來(lái)解決一下鏡像不完整而導(dǎo)致的問(wèn)題
進(jìn)容器
[root@localhost ~]# docker exec -it b7d37ccaadf0 /bin/bash root@b7d37ccaadf0:/usr/local/tomcat# b7d37ccaadf0
這樣復(fù)制一下文件到指定文件中
root@c9a2f98234c7:/usr/local/tomcat# cp -r webapps.dist/* webapps root@c9a2f98234c7:/usr/local/tomcat# cd webapps root@c9a2f98234c7:/usr/local/tomcat/webapps# ls ROOT docs examples host-manager manager root@c9a2f98234c7:/usr/local/tomcat/webapps#
瀏覽器上測(cè)試:
這就好了
接下來(lái),我們要進(jìn)行一些操作
使得我們修改后的鏡像提交成一個(gè)新的副本
下次我們直接使用它
[root@localhost ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c9a2f98234c7 tomcat:9.0 "catalina.sh run" 17 minutes ago Up 17 minutes 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp tomcat04 155ead9f80cc tomcat "catalina.sh run" 6 hours ago Up 6 hours 0.0.0.0:3355->8080/tcp, :::3355->8080/tcp tomcat01 2257878e8b61 nginx "/docker-entrypoint.…" 6 hours ago Up 6 hours 0.0.0.0:443->80/tcp, :::443->80/tcp nginx01 6d6fa6a4c6d7 5d0da3dc9764 "/bin/bash" 7 hours ago Up 7 hours nice_panini
將我們?cè)冉?jīng)過(guò)處理的鏡像打成一個(gè)新的包,變成一個(gè)新的整體
[root@localhost ~]# docker commit -a="shuaige" -m "add a web app" c9a2f98234c7 tomcat04:1.0 sha256:12b32b1a124d5c1a3572fd0d02542c254192e415aa49045390f15a9a811f0153 [root@localhost ~]#
查看鏡像:(看Tomcat04 的那個(gè)鏡像,比原先的9.0 Tomcat 鏡像要大)
[root@localhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE tomcat04 1.0 12b32b1a124d 2 minutes ago 685MB nginx latest 605c77e624dd 2 months ago 141MB tomcat 9.0 b8e65a4d736d 2 months ago 680MB tomcat latest fb5657adc892 2 months ago 680MB mysql latest 3218b38490ce 2 months ago 516MB hello-world latest feb5d9fea6a5 5 months ago 13.3kB centos latest 5d0da3dc9764 5 months ago 231MB
現(xiàn)在他就是一個(gè)新的鏡像了,下次可以直接使用
到此這篇關(guān)于docker commit命令的具體使用的文章就介紹到這了,更多相關(guān)docker commit 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker沒(méi)有啟動(dòng)環(huán)境變量的問(wèn)題解決
在使用Docker容器時(shí),有時(shí)候我們會(huì)遇到一個(gè)問(wèn)題,就是在容器中沒(méi)有啟動(dòng)環(huán)境變量,本文主要介紹了Docker沒(méi)有啟動(dòng)環(huán)境變量的問(wèn)題解決,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02Docker內(nèi)網(wǎng)穿透frp部署實(shí)現(xiàn)過(guò)程解析
這篇文章主要介紹了Docker內(nèi)網(wǎng)穿透frp部署實(shí)現(xiàn)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11在IntelliJ IDEA中使用Docker的開(kāi)發(fā)指南
這篇文章主要給大家介紹了在IntelliJ IDEA中使用Docker開(kāi)發(fā)指南,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)我們的使用Docker有一定的幫助,需要的朋友可以參考下2023-09-09dockerExecute 函數(shù)和docker.build的區(qū)別解析
dockerExecute 通常是一個(gè)自定義的函數(shù)或者由特定的 Jenkins 庫(kù)(如 piper-lib)提供,用于在 Docker 容器中執(zhí)行特定的命令,這篇文章主要介紹了dockerExecute 函數(shù)和docker.build的區(qū)別,需要的朋友可以參考下2024-12-12Docker如何實(shí)現(xiàn)容器間的安全通信方式
文章介紹了使用自定義網(wǎng)絡(luò)、網(wǎng)絡(luò)訪問(wèn)控制、數(shù)據(jù)加密、認(rèn)證與授權(quán)機(jī)制、安全更新與漏洞管理等方法來(lái)提升Docker容器的安全性2024-11-11docker desktop安裝redis的實(shí)現(xiàn)步驟
本文主要介紹了docker desktop安裝redis的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04Docker鏡像導(dǎo)出與導(dǎo)入與拷貝實(shí)例分析
在本篇文章里小編給大家整理的是關(guān)于Docker鏡像導(dǎo)出與導(dǎo)入與拷貝實(shí)例分析,有需要的朋友們可以參考下。2020-02-02解決docker容器與宿主機(jī)相差8小時(shí)的問(wèn)題
使用docker-compose部署時(shí),在輸出的日志以及相關(guān)事件校驗(yàn)及輸出時(shí),導(dǎo)致事件與現(xiàn)實(shí)相差8小時(shí)。糾結(jié)怎么回事呢?下面小編給大家分享下解決docker容器與宿主機(jī)相差8小時(shí)的問(wèn)題,一起看看吧2021-09-09