使用docker的python基礎(chǔ)鏡像時(shí)要指定patch版本原理
python 項(xiàng)目打包成 docker 鏡像
需要把 python 項(xiàng)目打包成 docker 鏡像的時(shí)候,我都是 FROM python:3.11.5-bookworm
在 python:3.11.5-bookworm
中:
3
表示 Python 的主要版本號。在這個例子中,它指的是 Python 3系列。Python 分為兩個主要版本系列,即 Python 2 和 Python 3,其中 Python 3 是當(dāng)前推薦使用的版本。11
表示 Python 的次要版本號。在這個例子中,它表示 Python 3.11 版本。次要版本通常包含新功能和改進(jìn),但與主要版本不同,它們通常是向后兼容的。5
表示 Python 的修訂版本號。在這個例子中,它表示 Python 3.11.5 的修訂版本。修訂版本通常包含錯誤修復(fù)和小的改進(jìn)。
引用
綜合起來,python:3.11.5-bookworm
表示一個基于 Python 3.11.5 版本的 Docker 鏡像,其中可能包含特定的 Debian 發(fā)行版(在這里是 "bookworm")。
為什么要把 5 這個 patch version 帶上呢?
因?yàn)?docker build 的時(shí)候,會無腦復(fù)用已有的基礎(chǔ)鏡像
比如我的本地已經(jīng)有 python:3.10-bullseye 了,是很久之前拉取的,對應(yīng)的 python 版本的 python3.10.0
╰─? docker run --rm -it python:3.10-bullseye python --version Python 3.10.0
現(xiàn)在是 2023年10月12日了,此時(shí)的 python3.10 最新的版本已經(jīng)是 Python 3.10.13
此時(shí)我用類似下面 Dockerfile 打包鏡像,docker 會把 python:3.10-bullseye 從 python3.10.0 更新到 python3.10.13 嗎?
FROM python:3.10-bullseye RUN mkdir /code WORKDIR /code
答案是不會,來驗(yàn)證一下
docker build -t "ponponon/image_search_engine:2023.09.07.1" .
[+] Building 0.7s (7/7) FINISHED docker:default
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 94B 0.0s
=> [internal] load metadata for docker.io/library/python:3.10-bullseye 0.0s
=> CACHED [1/3] FROM docker.io/library/python:3.10-bullseye 0.0s
=> [2/3] RUN mkdir /code 0.6s
=> [3/3] WORKDIR /code 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:13770b282346a96fabcf2010b5c815feee3ef76935cdc7e87e719aa0d376854d 0.0s
=> => naming to docker.io/ponponon/image_search_engine:2023.09.07.1
查看打包鏡像中的 python 版本
╰─? docker run --rm -it ponponon/image_search_engine:2023.09.07.1 python --version 130 ? Python 3.10.0
可以看到,里面的 python 版本還是 3.10.0
那么,怎么把 「python:3.10-bullseye 從 python3.10.0 更新到 python3.10.13 」呢?
在本地執(zhí)行 docker pull python:3.10-bullseye
可行嗎?不一定可行
docker 如何升級 python 鏡像
老機(jī)器上的 python
版本還是 10.1
??
─? docker run -it --rm python:3.10-buster python --version Python 3.10.1
新機(jī)器上的 python
版本是 10.4
??
─? docker run -it --rm python:3.10-buster python --version Python 3.10.4
我想把老機(jī)器上的 3.10-buster
也變?yōu)?nbsp;10.4
docker
有什么命令可以升級鏡像的?
我并不想: 先刪除鏡像,再拉取鏡像。因?yàn)閯h不掉(奇怪的依賴關(guān)系)
我希望可以有類似下面的命令來讓 docker 自動從 docker hub 升級鏡像版本 ??
docker pull python:3.10-buster --upgrade
以上就是使用docker的python基礎(chǔ)鏡像時(shí)要指定patch版本原理的詳細(xì)內(nèi)容,更多關(guān)于docker python基礎(chǔ)鏡像的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Docker部署Kafka以及Spring Kafka實(shí)現(xiàn)
這篇文章主要介紹了Docker部署Kafka以及Spring Kafka實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10MacOS使用Docker創(chuàng)建MySQL主從數(shù)據(jù)庫的方法
這篇文章主要介紹了MacOS使用Docker創(chuàng)建MySQL主從數(shù)據(jù)庫,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12Spring Boot使用Docker分層打包的設(shè)置方法
Spring Boot 現(xiàn)在支持分層打包技術(shù)了, 我們也來用一用, 加速Docker打包, 構(gòu)建的時(shí)候速度也會非常快.本文重點(diǎn)給大家介紹Spring Boot使用Docker分層打包的設(shè)置方法,感興趣的朋友一起看看吧2021-08-08win10子系統(tǒng)ubuntu(WSL) 安裝Docker的教程(圖文詳解)
現(xiàn)在 Docker 有專門的 Win10 專業(yè)版系統(tǒng)的安裝包,需要開啟Hyper-V,具體開啟方法文中給大家介紹的很詳細(xì),這篇文章主要介紹了win10子系統(tǒng)ubuntu(WSL) 安裝Docker,需要的朋友可以參考下2019-10-10