使用Docker搭建python环境

使用Docker搭建python环境

一、实现思路

学院管理系统主要用于学习做接口测试项目的

该项目来源于“公众号:测试奇谭”,大家可以自行去公众号回复【接口测试项目】

备注:这个学院管理系统,主要是公众号作者用于做接口测试实战的

image-20230322230331515

二、环境准备

  1. Linux 服务器一台(我的是CentOS7)

  2. 项目准备:学院管理系统

    image-20230322231514922

三、实现思路

  1. 在linux服务器安装docker
  2. 根据项目依赖包构建pyhon镜像
  3. 运行新的python容器,执行项目

四、搭建python服务

1. 使用Dockerfile构建python镜像

1.1 拉取python镜像

注意哈:学院管理项目只能使用python3.7

docker pull python:3.7.16-alpine3.17

image-20230323200059786

1.2. 编写Dockerfile文件
  1. 将项目依赖包导出来到requirements.txt文件中,txt文件名称可以随意写

    pip freeze > requirements.txt
    

    由于我们的 项目中,已存在requirements.txt,这里就不执行操作了

  2. 在宿主机(安装docker的机子)上新建一个目录(我的目录在/app),将requirements.txt文件复制进去

    mkdir -p app 
    cp student_env/requirements.txt app/
    

    image-20230322231952799

  3. 在app目录下创建Dockerfile文件(文件名必须是Dockerfile,没有后缀)

    FROM python:python:3.7.16-alpine3.17
    WORKDIR /app
    ADD requirements.txt /app 
    RUN pip install -r requirements.txt
    CMD["python","run_server.py"]
    
    • requirements.txt文件内容如下

    image-20230322232208756

  4. Dockerfile内容以及解释如下

    FROM python:3.7.16-slim # 基于python:3.7.16-slim这个基础镜像构建镜像
    WORKDIR /app #切换换工作空间
    ADD equirements.txt /app # 将python项目依赖包添加到镜像
    RUN pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple# 安装依赖包
    CMD ["python","run_server.py"]# 设置容器执行后自动执行的命令,这里的“run_server.py”是项目的执行入口
    
  5. 在app目录下执行镜像构建命令

    docker build -t python3.7:student_env .
    
    • -t:镜像名称
    • 点(.)表示Dockerfile文件所在的目录

    image-20230323201045951

  6. 构建成功后会看到一个新的镜像(docker images)

image-20230323201122468

  1. 创建一个python容器并查看依赖包是否安装成功

    搭建test_env容器

    docker run -id --name=test_env python3.7:student_env /bin/sh
    

    image-20230323201215272

    进入test_env容器,并查看安装包

    docker exec -it -u 0 test_env  /bin/sh
    

    image-20230323201327655

    如果存在没安装上的依赖包可以自行在student_env容器中安装

    pip install 依赖包==版本 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
    

2.将项目代码映射在python容器中

  1. 将项目代码所在映射到容器中

    说明哈:这里我又创建了一个env的容器

    docker run -id -v /root/student_env:/app -p 8099:8099 -u=root --name=env python3.7:student_env
    
    参数说明:
    -i:表示运行容器
    -t:表示容器启动后会进入其命令行
    -d:守护式方式创建容器在后台运行
    --name:容器名称
    -p 8099:8099:端口映射,宿主机端口:python服务端口(8099)
    -u=root:指定容器用户为root用户
    -v /root/student_env:/app:将项目代码映射到python容器中
    

    image-20230323202330193

    1. 验证一下python项目是否能运行

      python run_server.py
      

      如果运行时报下面错误(Django版本兼容性导致的)

      
      Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x0000024D934BDD08>
      Traceback (most recent call last):
      ……
      File "C:\Python37\lib\site-packages\django\contrib\admin\widgets.py", line 152
          '%s=%s' % (k, v) for k, v in params.items(),
          ^
      SyntaxError: Generator expression must be parenthesized
      

      则需跳转到报错路径下,将这个逗号去掉,然后重新键入python run_server.py命令启动项目。

      image-20230323202805686

      简单一点,不折腾了,直接使用vim进行修改,其实更好的是使用映射(但是这个不太会)

      不知道为啥我容器中VIM安装不了

      image-20230323210334388

      先使用docker cp 拷贝进行修改

      #将容器中的文件拷贝出来
      docker cp 0e49a9fb637d:/usr/local/lib/python3.7/site-packages/django/contrib/admin/widgets.py .
      
      #将容器中的文件拷贝回去
      docker cp widgets.py 0e49a9fb637d:/usr/local/lib/python3.7/site-packages/django/contrib/admin/widgets.py 
      
      
    2. 在验证一下

      会提示8099端口会占用,因为我在启动dokcer容器有已经运行了run_server.py

      image-20230323210627726

      我们在浏览中输入:ip:8099/api/departments/即可

      如果出现下图,则允许正确

      image-20230323210932586

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Docker是一种容器化技术,可以帮助我们快速搭建Python开发环境。以下是搭建步骤: 1. 安装Docker 首先需要安装Docker,可以在官网下载安装包进行安装。 2. 创建Docker镜像 使用Dockerfile创建Docker镜像,Dockerfile是一个文本文件,其中包含了构建镜像所需的指令和配置信息。可以在Dockerfile中指定Python版本、安装依赖库等。 3. 运行Docker容器 使用Docker镜像创建Docker容器,可以在容器中运行Python程序。可以使用docker run命令创建容器,并指定容器的名称、端口映射等。 4. 进入Docker容器 使用docker exec命令可以进入Docker容器,可以在容器中执行Python程序、安装依赖库等操作。 以上是使用Docker搭建Python开发环境的基本步骤,可以根据实际需求进行配置和调整。 ### 回答2: Docker是一个轻量级容器虚拟化平台,通过Docker可以快速构建、发布和运行应用程序。Docker具有兼容性好、可移植性高、资源占用小等特点,被广泛应用于软件开发和运维领域。 Python是一门非常流行的编程语言,应用广泛。搭建Python开发环境需要安装各种编译工具、库和依赖项,非常繁琐。使用Docker可以快速搭建Python开发环境,避免了环境配置的烦恼,提高了程序的可移植性和兼容性。 下面是使用Docker搭建Python开发环境的步骤: 1. 安装Docker 首先需要安装DockerDocker官网提供了详细的安装指南和下载地址,根据自己的操作系统版本选择相应的Docker安装包进行安装。 2. 创建Docker镜像 使用Dockerfile创建Docker镜像,可以让我们轻松地搭建Python开发环境,以下是Dockerfile的示例: ``` FROM python:3.7-slim-buster WORKDIR /myapp COPY requirements.txt . RUN apt-get update && \ apt-get install -y gcc && \ pip install -r requirements.txt CMD [ "/bin/bash" ] ``` 3. 构建Docker镜像 在Dockerfile所在的目录下执行以下命令,构建Docker镜像 ``` docker build -t my-python-app . ``` 其中my-python-app是镜像名称,`.`表示当前目录。 4. 运行Docker容器 执行以下命令,启动容器 ``` docker run -it --name=my-python-container my-python-app /bin/bash ``` 其中`my-python-container`是容器名称,`my-python-app`是镜像名称,`/bin/bash`是容器启动后执行的命令。 容器启动后,可以在容器中使用Python进行开发,也可以通过端口映射将容器中的服务开放给外部。开发完成后,可以通过docker stop命令停止容器。 使用Docker搭建Python开发环境,可以帮助我们快速搭建开发环境,避免各种繁琐的配置工作,提高开发效率。同时,Docker具有极高的可移植性和兼容性,可以让我们的程序更加稳定可靠。 ### 回答3: Docker是一款非常流行的容器化技术,它可以快速搭建开发环境。在使用Docker搭建Python开发环境之前,需要先了解以下几个概念: 1. Docker镜像:Docker的镜像是一个打包好的文件,类似于虚拟机中的镜像文件,其中包含了开发环境所需的所有组件和配置。 2. Docker容器:Docker容器是Docker镜像的运行实例,可以理解为一个轻量级的虚拟机。 3. Dockerfile:Dockerfile是一个文本文件,其中包含了构建Docker镜像所需的所有步骤和指令。 接下来就是具体的步骤: 1. 安装Docker:在官网下载Docker安装包并安装,具体的步骤可以参照官方文档。 2. 创建Dockerfile:在本地创建一个文件夹,创建Dockerfile并编写如下内容: ``` FROM python:3.8 WORKDIR /app ADD . /app RUN pip install --upgrade pip RUN pip install -r requirements.txt CMD ["python", "app.py"] ``` 其中,FROM指令指定了使用Python版本,WORKDIR指定了工作目录,ADD指令将当前目录下的所有文件添加到镜像中,RUN指令用来执行命令。requirements.txt文件是保存依赖包的文件。 3. 构建Docker镜像:在Dockerfile所在的目录执行以下命令: ``` docker build -t my-python-app . ``` 其中,my-python-app是镜像的名称,最后的“.”表示Dockerfile所在的当前目录。 4. 运行Docker容器:执行以下命令即可启动容器: ``` docker run -d -p 80:80 my-python-app ``` 其中,-d表示以守护进程模式启动容器,-p指定了一个端口映射,my-python-app是要启动的镜像名称。 5. 验证容器是否正常运行:在浏览器中输入http://localhost,可以看到Python应用程序的输出。 以上就是使用Docker搭建Python开发环境的具体步骤,通过Docker,我们可以快速、简单地搭建开发环境,使得开发者可以更加专注于业务逻辑的实现,而不必担心开发环境的配置和兼容性问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值