最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

教你如何通過編寫dockerfile部署python項目

 更新時間:2024年07月26日 09:45:02   作者:現(xiàn)實、狠殘酷  
Dockerfile是一個放置在項目根目錄下的描述文件,可以利用 Docker 命令基于該文件構建一個鏡像,下面這篇文章主要給大家介紹了關于如何通過編寫dockerfile部署python項目的相關資料,需要的朋友可以參考下

docker命令總覽

docker通過dockerfile構建鏡像常用命令

# 創(chuàng)建鏡像(進入dockerfile所在的路徑)
docker build -t my_image:1.0 .

# 查看鏡像
docker images

# 創(chuàng)建容器
docker run -dit --restart=always -p 9700:9700 --name my_container my_image:1.0 

# 查看容器
docker ps -a

# 進入容器
docker exec -it my_container /bin/bash

# 退出容器
exit

# 暫停容器
docker stop my_container 

# 刪除容器
docker rm my_container 

dockerfile編寫

# 使用官方的Python運行時作為父鏡像
FROM python:3.10
# 設置工作目錄為/app
WORKDIR /app
# 將當前目錄內容復制到位于 /app 的容器中
COPY . /app
# 安裝任何需要的包
RUN pip install torch-2.0.0+cpu-cp310-cp310-linux_x86_64.whl
RUN pip install torchvision-0.15.1+cpu-cp310-cp310-linux_x86_64.whl
RUN pip install --no-cache-dir -r requirements_new.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 將/etc/localtime鏈接到上海時區(qū)文件
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 對外暴露的端口號
EXPOSE 9700
# 定義環(huán)境變量
ENV model = gpt-4-vision-preview
# 當容器啟動時運行python app.py
CMD ["python", "app.py"]

dockerfile中COPY與ADD的區(qū)別

在 Dockerfile 中,COPY 和 ADD 指令都用于將文件或目錄從構建上下文復制到鏡像中,但它們之間有一些重要的區(qū)別:

1.基本功能:

  • COPY:將本地文件或目錄復制到鏡像中。
  • ADD:將本地文件、目錄或遠程文件 URL 的內容復制到鏡像中。如果源文件是一個 URL,并且目標文件不存在,則 ADD 指令還會下載和解壓 URL 指向的文件(如果它是壓縮的)。

2.對壓縮文件的處理:

  • COPY:不會處理壓縮文件,如果源文件是一個 .tar、.gz 或其他壓縮格式的文件,它將被復制到鏡像中,但不會解壓。
  • ADD:如果源文件是一個壓縮文件(如 .tar、.tar.gz、.tgz、.bz2、.xz 等),則 ADD 指令會自動解壓該文件到目標目錄(如果指定了的話)。

3.構建緩存:

  • COPY 和 ADD 都會受益于 Docker 的構建緩存。但是,由于 ADD 會處理 URL 和解壓文件,因此它可能更難以有效地使用緩存。如果遠程文件的內容更改,或者壓縮文件的內容更改,即使解壓后的內容沒有更改,ADD 也可能導致緩存失效。

4.最佳實踐:

通常,推薦使用 COPY 指令,因為它更直觀、更簡單,并且更容易理解。當需要復制本地文件或目錄到鏡像時,COPY 是首選。
如果需要從遠程 URL 下載文件,或者需要解壓壓縮文件到鏡像中,可以使用 ADD 指令。但是,請注意 ADD 的一些潛在問題,如緩存失效和不必要的復雜性。

5.安全性:

  • 使用 ADD 從遠程 URL 下載文件可能會引入安全風險,因為遠程文件的內容可能不受控制。如果可能,最好從受信任的源下載文件,并使用 COPY 指令將文件復制到鏡像中。

6.目標路徑:

  • 對于 COPY 和 ADD,如果目標路徑不存在,Docker 將嘗試創(chuàng)建它。但是,如果目標路徑是一個文件而不是目錄,并且該文件已經(jīng)存在,則操作將失敗。

總結:在 Dockerfile 中,應優(yōu)先考慮使用 COPY 指令來復制本地文件或目錄到鏡像中。只有在需要特定功能(如從遠程 URL 下載文件或解壓壓縮文件)時,才使用 ADD 指令。

將容器轉化為鏡像和鏡像壓縮解壓

# 將容器轉化為鏡像
docker commit my_container  my_image:1.2

# 將鏡像轉為壓縮包
docker save -o my_package.tar my_image:1.2

# 刪除原鏡像
docker rmi my_image:1.2

# 將壓縮包解壓得到鏡像
docker load –i my_package.tar

將鏡像推送到私有倉庫

# 標記鏡像
docker tag logistics_park:base 10.82.27.215:10081/ai_platform/logistics_park:base

# 將鏡像推送到私有倉庫
docker push 10.82.27.215:10081/ai_platform/logistics_park:base

根據(jù)基礎鏡像創(chuàng)建docker容器

docker pull python:3.10
# 創(chuàng)建容器不進入
docker run -dit --name=p1 python:3.10
# 進入容器
docker exec -it p1 bash
# 創(chuàng)建文件夾
mkdir app
# 推出容器
exit
# 將需要的依賴拷貝到鏡像指定目錄
docker cp torchvision-0.15.1+cpu-cp310-cp310-linux_x86_64.whl p1:app/
# 升級pip
pip3 install --upgrade pip

# 安裝需要的依賴(加上鏡像源)
pip install -r requirements_new.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
# 退出容器
exit
# 將容器打包為鏡像(確保容器正在運行)
docker commit p1 logistics_park:base
# 標記鏡像
docker tag logistics_park:base 10.82.27.215:10081/ai_platform/logistics_park:base
# 將鏡像推送到私有倉庫
docker push 10.82.27.215:10081/ai_platform/logistics_park:base
# 構建鏡像
docker build -t logistics_park:v1.0 .
# 容器運行命令:
docker run -dit --restart=always -p 9700:9700 --name logistics_park logistics_park:v1.0

通過基礎鏡像創(chuàng)建容器的dockefile

# 使用官方的Python運行時作為父鏡像
FROM 10.82.27.215:10081/ai_platform/logistics_park:base
# 設置工作目錄為/app
WORKDIR /app
# 將當前目錄內容復制到位于 /app 的容器中
COPY . /app
# 將/etc/localtime鏈接到上海時區(qū)文件
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# 驗證時區(qū)
RUN date
# 對外暴露的端口號
EXPOSE 9700
# 定義環(huán)境變量
# ENV model = gpt-4-vision-preview
# 當容器啟動時運行python app.py
CMD ["python", "app.py"]

總結 

到此這篇關于如何通過編寫dockerfile部署python項目的文章就介紹到這了,更多相關dockerfile部署python項目內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • WSL2、Docker?Desktop安裝配置最新版保姆級教程(附詳細圖文)

    WSL2、Docker?Desktop安裝配置最新版保姆級教程(附詳細圖文)

    WSL2與Windows系統(tǒng)之間具有更好的隔離性,每個WSL2實例都運行在獨立的輕量級虛擬機中,這有助于提高系統(tǒng)的安全性和穩(wěn)定性,這篇文章主要介紹了WSL2、Docker?Desktop安裝配置最新版保姆級教程的相關資料,需要的朋友可以參考下
    2025-12-12
  • Docker 常用命令詳細整理

    Docker 常用命令詳細整理

    這篇文章主要介紹了Docker 常用命令詳細整理的相關資料,需要的朋友可以參考下
    2017-05-05
  • 如何解決docker logs無法實時輸出腳本打印的內容

    如何解決docker logs無法實時輸出腳本打印的內容

    這篇文章主要介紹了如何解決docker logs無法實時輸出腳本打印的內容問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • ES和Kibana如何設置賬號密碼

    ES和Kibana如何設置賬號密碼

    設置Elasticsearch和Kibana賬號密碼需進入容器修改配置文件,重啟服務后訪問時輸入憑證,Elasticsearch需設置elastic等六種賬戶密碼,Kibana通過配置文件啟用安全功能
    2025-07-07
  • Docker如何根據(jù)名稱查詢容器ID鏡像ID并停止刪除

    Docker如何根據(jù)名稱查詢容器ID鏡像ID并停止刪除

    這篇文章主要介紹了Docker如何根據(jù)名稱查詢容器ID鏡像ID并停止刪除問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Docker安裝和簡單使用入門教程

    Docker安裝和簡單使用入門教程

    這篇文章主要介紹了Docker安裝和簡單使用入門教程,由于小編使用的是linux系統(tǒng),支持docker的,所以安裝相對比較簡單,需要的的朋友參考下吧
    2017-01-01
  • Docker 基礎之Dockerfile命令詳解

    Docker 基礎之Dockerfile命令詳解

    這篇文章主要介紹了Docker 基礎之Dockerfile命令,本文介紹 Dockerfile 的基本結構及其支持的眾多指令,有興趣的可以了解一下
    2017-04-04
  • Dockerfile命令參數(shù)的具體使用

    Dockerfile命令參數(shù)的具體使用

    Dockerfile是一個文本文件,包含用戶構建鏡像的所需要的全部命令,本文主要介紹了Dockerfile命令參數(shù)的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2024-06-06
  • docker nginx + https 子域名配置詳細教程

    docker nginx + https 子域名配置詳細教程

    這篇文章主要介紹了docker nginx + https 子域名配置詳細教程,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04
  • 解決Docker daemon啟動問題

    解決Docker daemon啟動問題

    這篇文章主要介紹了解決Docker daemon啟動問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論

漯河市| 海丰县| 衡东县| 十堰市| 阳江市| 乌兰察布市| 湟源县| 东乡县| 迁安市| 铜陵市| 城固县| 日喀则市| 日喀则市| 元氏县| 乐业县| 阿勒泰市| 沐川县| 昌平区| 鱼台县| 新郑市| 始兴县| 延寿县| 锡林浩特市| 化州市| 沭阳县| 大渡口区| 师宗县| 墨江| 北京市| 大同县| 徐汇区| 丽江市| 常德市| 获嘉县| 新津县| 固镇县| 南丹县| 阜阳市| 淮滨县| 天镇县| 陈巴尔虎旗|