網(wǎng)站首頁 編程語言 正文
我們可以通過公共倉庫拉取鏡像使用,但是,有些時(shí)候公共倉庫拉取的鏡像并不符合我們的需求。盡管已經(jīng)從繁瑣的部署工作中解放出來了,但是在實(shí)際開發(fā)時(shí),我們可能希望鏡像包含整個項(xiàng)目的完整環(huán)境,在其他機(jī)器上拉取打包完整的鏡像,直接運(yùn)行即可。
Docker 支持自己構(gòu)建鏡像,還支持將自己構(gòu)建的鏡像上傳到公共倉庫,鏡像構(gòu)建可以通過以下兩種方式來實(shí)現(xiàn):
- docker commit:從容器創(chuàng)建一個新的鏡像;
- docker huild:配合 Dockerfile 文件創(chuàng)建鏡像;
示例:通過 docker commit 來實(shí)現(xiàn)鏡像的構(gòu)建,通過基礎(chǔ)鏡像 centos:7,將 jdk 和 Tomcat 安裝在該鏡像中制作成一個新的鏡像
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) # 啟動 Tomcat /usr//local/tomcat/apache-tomcat-9.0.39/bin/startup.sh
原文鏈接:https://www.cnblogs.com/XiaoYang-sir/p/16085482.html
相關(guān)推薦
- 2022-05-31 Python學(xué)習(xí)之yaml文件的讀取詳解_python
- 2023-03-25 Android?Jetpack組件ViewModel基本用法詳解_Android
- 2022-07-02 如何對numpy?矩陣進(jìn)行通道間求均值_python
- 2022-11-02 Go?語言簡單實(shí)現(xiàn)Vigenere加密算法_Golang
- 2022-11-17 C#實(shí)現(xiàn)表格數(shù)據(jù)轉(zhuǎn)實(shí)體的示例代碼_C#教程
- 2022-06-29 python人工智能tensorflow函數(shù)tf.layers.dense使用方法_python
- 2023-04-19 nginx: [error] CreateFile() “D:\nginx-1.21.6/logs/
- 2022-07-01 Go官方限流器的用法詳解_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支