Docker鏡像構(gòu)建之docker commit的使用
我們可以通過公共倉庫拉取鏡像使用,但是,有些時(shí)候公共倉庫拉取的鏡像并不符合我們的需求。盡管已經(jīng)從繁瑣的部署工作中解放出來了,但是在實(shí)際開發(fā)時(shí),我們可能希望鏡像包含整個(gè)項(xiàng)目的完整環(huán)境,在其他機(jī)器上拉取打包完整的鏡像,直接運(yùn)行即可。
Docker 支持自己構(gòu)建鏡像,還支持將自己構(gòu)建的鏡像上傳到公共倉庫,鏡像構(gòu)建可以通過以下兩種方式來實(shí)現(xiàn):
- docker commit:從容器創(chuàng)建一個(gè)新的鏡像;
- docker huild:配合 Dockerfile 文件創(chuàng)建鏡像;
示例:通過 docker commit 來實(shí)現(xiàn)鏡像的構(gòu)建,通過基礎(chǔ)鏡像 centos:7,將 jdk 和 Tomcat 安裝在該鏡像中制作成一個(gè)新的鏡像
1、創(chuàng)建容器
# 拉取鏡像 docker pull centos:7 # 創(chuàng)建容器 docker run -id --name centos7 centos:7
2、拷貝資源
將宿主機(jī)的 jdk 和Tomcat 拷貝到容器
docker cp jdk-11.0.7_linux-x64_bin.tar.gz centos7:/root docker cp apache-tomcat-9.0.39.tar.gz centos7:/root
3、安裝資源
# 進(jìn)入容器 docker exec -it centos7 /bin/bash
在容器中執(zhí)行以下操作:
# 切換到 /root 目錄 cd root/ # 創(chuàng)建 Java 和 Tomcat 目錄 mkdir -p /usr/local/java mkdir -p /usr/local/tomcat # 將 jdk 和 Tomcat 解壓到容器的 Java 和 Tomcat 目錄中 tar -zxvf jdk-11.0.6_linux-x64_bin.tar.gz -C /usr/local/Java/ tar -zxvf apache-tomcat-9.0.39.tar.gz -C /usr/local/tomcat/ # 在環(huán)境變量文件中添加以下內(nèi)容 export JAVA_HOME=/usr/local/java/jdk-11.0.6/ export PATH=$PATH:$JAVA_HOME/bin # 重新加載環(huán)境變量文件 source /etc/profile # 測試環(huán)境變量是否配置成功 [root@f1cd1a3df1ed etc]# java -version java version "11.0.7" 2020-04-14 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.7+8-LTS, mixed mode)
4、構(gòu)建鏡像
docker commit [OPTIONS] CONTAINER [REPOSITORY[:TAG]] docker commit -a="xiaoyang" -m="jdk11 and tomcat" centos7 mycentos:7
- -a:提交的鏡像作者;
- -c:使用 Dockerfile 指令來創(chuàng)建鏡像;
- -m:提交時(shí)的說明文字;
- -p:在 commit 時(shí),將容器暫停;
5、使用構(gòu)建的鏡像創(chuàng)建容器
# 創(chuàng)建容器 docker run -id --name mycentos7 -p 8080:8080 mycentos:7 # 進(jìn)入容器 docker exec -it mycentos7 /bin/bash # 重新加載配置文件 source /etc/profile # 測試 Java 環(huán)境變量 [root@7ed6a969f63a /]# java -version java version "11.0.7" 2020-04-14 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.7+8-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.7+8-LTS, mixed mode) # 啟動(dòng) Tomcat /usr//local/tomcat/apache-tomcat-9.0.39/bin/startup.sh
到此這篇關(guān)于Docker鏡像構(gòu)建之docker commit的使用的文章就介紹到這了,更多相關(guān)docker commit內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker?mysql5.7如何設(shè)置不區(qū)分大小寫
本文主要介紹了docker?mysql5.7如何設(shè)置不區(qū)分大小寫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07淺談Docker運(yùn)行Tensorboard和jupyter的方法
本篇文章主要介紹了淺談Docker 運(yùn)行Tensorboard 和 jupyter的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03Docker網(wǎng)絡(luò)配置及部署SpringCloud項(xiàng)目詳解
bridge模式是Docker默認(rèn)的網(wǎng)絡(luò)設(shè)置,此模式會為每一個(gè)容器分配Network Namespace、設(shè)置IP等,并將一個(gè)主機(jī)上的Docker容器連接到一個(gè)虛擬網(wǎng)橋上,下面這篇文章主要給大家介紹了關(guān)于Docker網(wǎng)絡(luò)配置及部署SpringCloud項(xiàng)目的相關(guān)資料,需要的朋友可以參考下2023-01-01Docker 學(xué)習(xí)文檔(知識結(jié)構(gòu)整理)
這篇文章主要介紹了Docker 學(xué)習(xí)文檔的相關(guān)資料,需要的朋友可以參考下2016-11-11docker如何安裝帶postgis插件的postgresql數(shù)據(jù)庫
這篇文章主要介紹了docker如何安裝帶postgis插件的postgresql數(shù)據(jù)庫問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12