2021-01-22 使用 Docker 打包 Python 项目
生活随笔
收集整理的這篇文章主要介紹了
2021-01-22 使用 Docker 打包 Python 项目
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
使用 Docker 打包 Python 項(xiàng)目
1. 獲取 Python 的鏡像文件
項(xiàng)目的封裝可以建立在已有鏡像的基礎(chǔ)上,在 Ubuntu 中可通過
docker pull python:3.6.8-slim-stretch # 這里選取了3.6版本獲取 Python 鏡像
2. 配置 Dockerfile 文件
在 Python 項(xiàng)目的根目錄新建 Dockerfile 文件,Dockerfile 名字必須是這個(gè),否則報(bào)錯(cuò),在 Dockerfile 文件中寫入下面內(nèi)容:
FROM python:3.6.8-slim-stretch WORKDIR /usr/src/appCOPY requirements.txt ./ RUN pip install --no-cache-dir -r requirements.txtCOPY . . ENTRYPOINT ["python"] CMD ["./run.py"]3. 創(chuàng)建鏡像
創(chuàng)建鏡像的命令為:
docker build -t python-project:1.0 .需要注意的是最后面的 “.” 不能省略 ,“.”代表當(dāng)前目錄
4. 運(yùn)行鏡像
運(yùn)行鏡像的命令為:
docker run --rm -p 5000:5000 --name pyproject python-project:1.0這行命令中的幾個(gè)參數(shù)的含義分別如下
- –rm:表示關(guān)閉命令行窗口時(shí),運(yùn)行該鏡像的進(jìn)程會(huì)同時(shí)關(guān)閉;
- -p:用來設(shè)置端口映射,即把電腦主機(jī)的端口映射到 docker 容器中的端口,如何封裝的是一個(gè) web 服務(wù),那么必須要設(shè)定端口映射;
- –name:用來為運(yùn)行的鏡像設(shè)置別名,方便后面的調(diào)用
此外,可能會(huì)經(jīng)常用到的參數(shù)還有:
- -e:為鏡像添加環(huán)境變量
- -d:使 web 在后臺(tái)持續(xù)運(yùn)行
5. 常用命令總結(jié)
docker build -t pflask:1.0 . 創(chuàng)建鏡像docker images | grep python 查看鏡像docker run --rm -p 5000:5000 pflask:1.0 運(yùn)行鏡像docker run --rm -p 5000:5000 -e env1=evn1 pflask:1.0 加入環(huán)境變量docker run -d pflask:1.0 運(yùn)行docker并守護(hù)進(jìn)程docker ps -a 查看當(dāng)前正在運(yùn)行的所有鏡像docker stop IMAGE_ID 根據(jù) IMAGE_ID 停止鏡像進(jìn)程docker rm -f IMAGE_ID 根據(jù) IMAGE_ID 刪除鏡像進(jìn)程docker rmi IMAGE_ID 根據(jù) IMAGE_ID 刪除鏡像docker logs -f tname 根據(jù)助記符查看日志ss -anp | grep 5000 從所有端口中過濾出 5000curl -v "http://192.168.195.100:5000" 測試連接cat hello.py 查看文件a256sum hello.py 散列算法Dockerfile內(nèi)容FROM python:3.6.8-slim-stretchWORKDIR /usr/src/appCOPY requirements.txt ./RUN pip install --no-cache-dir -r requirements.txtCOPY . .ENTRYPOINT ["python"]CMD ["/run.py"]?
參看資料:
1、https://blog.csdn.net/weixin_42902669/article/details/89042202
2、https://www.cnblogs.com/dhName/p/12680944.html
3、https://www.cnblogs.com/sammy1989/p/9406899.html
4、https://www.cnblogs.com/shoufu/p/12960752.html
?
?
?
總結(jié)
以上是生活随笔為你收集整理的2021-01-22 使用 Docker 打包 Python 项目的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021-01-22 Python Ti
- 下一篇: 2021-01-26 Python自动化