Docker实践:容器化部署Python应用

 

 

简单应用部署

一、目录结构:

└── Pythonpro #目录
  └── test.py #文件
  └── requirements.txt #文件
  └── Dockerfile    #文件

二、编写Dockerfile文件

复制代码
# 基于镜像基础
FROM python:3.6.4
# 创建代码文件夹工作目录 /code 
RUN mkdir /code 
# 复制当前代码文件到容器中 /code 
COPY . /code 
# 安装所需的包
RUN pip install -r /code/requirements.txt -i https://pypi.douban.com/simple
# 指定cmd的工作目录 /code
WORKDIR /code
#容器启动时执行的命令
CMD ["python","test.py"]
复制代码

三、创建容器镜像

docker build -t test .

四、运行容器

docker run -it  --name test --restart always --privileged=true python-test

--name:指定容器的名字为python-test,test是刚刚构建的镜像。

--restart:always 容器退出时总是重启。

--privileged=true:执行容器内文件需要的权限。

 

Django应用容器化

 一、目录结构,我这里假设这个目录存在于/home/Pythonpro。

└── Pythonpro                #目录
    └── manage.py      #文件
    └── 主项目             #目录
    └── apps                #目录
    └── requirements.txt  #文件
    └── Dockerfile      #文件
    └── run.sh        #文件

run.sh脚本

python /code/manage.py runserver 0.0.0.0:8000

二、编写Dockerfile文件

复制代码
FROM python:3.6.4

RUN mkdir /code \
&&apt-get update \
&&apt-get -y install freetds-dev \
&&apt-get -y install unixodbc-dev
COPY . /code 
RUN pip install -r /code/requirements.txt -i https://pypi.douban.com/simple
WORKDIR /code

CMD ["/bin/bash","run.sh"]
复制代码

三、构建镜像 

docker build -t  webtest .  

四、运行容器

docker run -it -p 6500:8000 -v /home/Pythonpro:/code --name web --restart always --privileged=true webtest

     -p:把容器的8000端口映射到宿主机6500

     -v:主机的目录/home/Pythonprot映射到容器的目录/code

     --name:指定容器的名字为web,webtest刚刚构建的镜像

     --restart:always 容器退出时总是重启

     --privileged=true:执行容器内文件需要的权限

 

posted @   -零  阅读(593)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
历史上的今天:
2019-09-26 linux下Django Nginx+uwsgi 安装配置
2019-09-26 python使用openpyxl操作execl
点击右上角即可分享
微信分享提示