Docker鏡像構(gòu)建之docker commit的使用
我們可以通過(guò)公共倉(cāng)庫(kù)拉取鏡像使用,但是,有些時(shí)候公共倉(cāng)庫(kù)拉取的鏡像并不符合我們的需求。盡管已經(jīng)從繁瑣的部署工作中解放出來(lái)了,但是在實(shí)際開(kāi)發(fā)時(shí),我們可能希望鏡像包含整個(gè)項(xiàng)目的完整環(huán)境,在其他機(jī)器上拉取打包完整的鏡像,直接運(yùn)行即可。
Docker 支持自己構(gòu)建鏡像,還支持將自己構(gòu)建的鏡像上傳到公共倉(cāng)庫(kù),鏡像構(gòu)建可以通過(guò)以下兩種方式來(lái)實(shí)現(xiàn):
- docker commit:從容器創(chuàng)建一個(gè)新的鏡像;
- docker huild:配合 Dockerfile 文件創(chuàng)建鏡像;
示例:通過(guò) docker commit 來(lái)實(shí)現(xiàn)鏡像的構(gòu)建,通過(guò)基礎(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 # 測(cè)試環(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 指令來(lái)創(chuàng)建鏡像;
- -m:提交時(shí)的說(shuō)明文字;
- -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 # 測(cè)試 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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
docker-compose安裝部署NebulaGraph圖數(shù)據(jù)庫(kù)的詳細(xì)過(guò)程
NebulaGraph Studio是一款可以通過(guò)Web訪問(wèn)的開(kāi)源圖數(shù)據(jù)庫(kù)可視化工具,搭配NebulaGraph內(nèi)核使用,提供構(gòu)圖、數(shù)據(jù)導(dǎo)入、編寫(xiě)nGQL查詢等一站式服務(wù),這篇文章主要介紹了docker-compose安裝部署NebulaGraph圖數(shù)據(jù)庫(kù)的詳細(xì)過(guò)程,感興趣的朋友一起看看吧2023-12-12
Docker安裝Jenkins的實(shí)現(xiàn)步驟
版本與jdk版本以及各類插件有對(duì)應(yīng)關(guān)系,所以普通安裝較為麻煩,本文主要介紹了Docker安裝Jenkins的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01
Docker利用DockerFile創(chuàng)建部署NVIDIA+PyTorch容器的詳細(xì)過(guò)程
這篇文章主要介紹了Docker利用DockerFile創(chuàng)建部署NVIDIA+PyTorch容器的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
用Docker快速構(gòu)建LEMP環(huán)境的方法示例
這篇文章主要介紹了用Docker快速構(gòu)建LEMP環(huán)境的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
docker-compose啟動(dòng)redis多機(jī)集群的實(shí)現(xiàn)(6臺(tái)服務(wù)器3主3從)
本文主要介紹了docker-compose啟動(dòng)redis多機(jī)集群的實(shí)現(xiàn)(6臺(tái)服務(wù)器3主3從),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-07-07
從零開(kāi)始:Docker中修改Nginx服務(wù)器配置
在Docker中修改Nginx配置是一種常見(jiàn)的操作,它允許我們根據(jù)特定需求來(lái)自定義Nginx服務(wù)器的行為,通過(guò)修改Nginx配置,我們可以添加新的虛擬主機(jī)、更改端口號(hào)、啟用SSL等,需要的朋友可以參考下2023-10-10
Docker網(wǎng)絡(luò)配置與自定義IP容器通信
IP地址是Docker容器在網(wǎng)絡(luò)中的唯一標(biāo)識(shí),每個(gè)Docker都會(huì)被分配一個(gè) IP,用于網(wǎng)絡(luò)通信,本文主要介紹了Docker網(wǎng)絡(luò)配置與自定義IP容器通信,感興趣的可以了解一下2024-03-03
Docker 中快速安裝tensorflow環(huán)境的方法步驟
這篇文章主要介紹了Docker 中快速安裝tensorflow環(huán)境的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-10-10

