網站首頁 編程語言 正文
應用場景
在某些情況下,我們可能需要修改官方的docker鏡像,不過,首先需要搞明白,鏡像:image 和容器:container 的區別:
鏡像image:類似于java中的類
容器container:類似于java中的對象
因此,我們往往從docker hub下載官方鏡像,然后,把鏡像部署到服務器,然后,我們真正用到該服務的時候,往往是根據該鏡像生成一個容器,然后運行容器。和java中類和對象的概念很像,鏡像就是類,根據類生成對象后,真正使用的是對象,對應docker就是容器。
修改官方docker鏡像
首先,明白了前面關于鏡像和容器的概念,我們就會明白,我們需要修改的是鏡像,如果我們只是在容器運行時做改動,則不會影響到鏡像。
下面就以我的一個例子來詳細說一下:
我的需求是更新matomo鏡像中的Apache http server版本
1. 下載鏡像
首先,下載鏡像,可以從docker hub或者從自己的服務器下載。我本來想著,既然更新的是matomo中的Apache http server版本,那我直接把matomo更新到最新不就好了?可惜,結果不如我所想,最新的matomo中,Apache仍然版本過低,所以,只能修改官方鏡像了
2. 啟動容器
查找所有鏡像:
docker images
找到你需要修改的鏡像,保存下鏡像id
然后,進入你要修改的鏡像(其實就是運行該鏡像的容器):
docker run -it ‘鏡像id’ /bin/sh
此時,你會進入容器內部的shell命令行,其實就是一個微型的Linux系統,然后就可以用Linux命令操作該容器,我在這里是升級了Apache版本:
你可以在這里做你需要的改動
apt-get update //獲取更新信息
apt-get upgrade //更新版本
3. 生成新鏡像
修改后,先執行exit退出容器
然后查找剛才運行的容器信息:
docker ps -a
用docker commit命令從容器打包成鏡像:
其中,備注和作者其實不重要,隨便寫,容器id就是你在上一步查找容器信息時獲取的容器id,找你剛才修改的容器,鏡像repository就是你打包生成的新鏡像的repository
docker commit -m “備注” -a “作者” 容器id 鏡像repository
最后,再次docker images就能看到你剛剛生成的新鏡像了
最后加個小功能,如何修改鏡像的tag:
docker tag IMAGEID(鏡像id) REPOSITORY:TAG(倉庫:標簽)
原文鏈接:https://blog.csdn.net/weixin_43923436/article/details/122689152
相關推薦
- 2022-05-13 Virtualbox?NAT網絡配置方法_VirtualBox
- 2022-04-10 Android中shape的自定義藝術效果使用_Android
- 2022-03-09 C#判斷DLL文件是32位還是64位的示例代碼_C#教程
- 2022-06-16 C#實現優先隊列和堆排序_C#教程
- 2022-06-17 Android啟動頁設置及動態權限跳轉問題解決_Android
- 2022-05-18 Python實現批量自動整理文件_python
- 2022-10-25 IDEA創建spring spring項目并且注冊到nacos的SpringCloud示例
- 2022-05-31 Python中用戶輸入與while循環詳情_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支