不期速成 日拱一卒 不期速成 日拱一卒
首页
技术
测试
分类
标签
归档
关于
首页
技术
测试
分类
标签
归档
关于
  • Hello Docker
  • 二进制文件安装Docker指南
  • Docker网桥导致网络故障分析
  • 使用Docker部署Python开发调试运行环境
    • 一、背景
    • 二、思路
    • 三、实现过程
      • (一)、选定Docker镜像版本
      • (二)、下载docker镜像
      • (三)、启动Docker镜像
      • (四)、配置apt源
      • (五)、安装常用服务
      • (六)、保存定制好的镜像,导入内网
      • (七)、使用定制的镜像启动容器
      • (八)、测试ssh登录
      • (九)、在容器内安装所需的python包
    • 总结和思考
    • 附件
  • Habor-轻量化容器服务自动部署工具
  • 当开发团队开始用Docker,测试团队应该做什么?
  • 如何把应用服务手动注册到Systemd
  • 探究inode耗尽导致的no space left on device报错原因
  • PyCharm远程开发配置攻略
  • 视频推流方案
  • Prometheus&Grafana打造性能测试监控服务
  • Pythoner的vim
  • RobotFramework字符转译之坑
  • JSONSchema常用关键字语法手册
  • 根据JSON Schema生成JSON样例数据
  • 一图看懂正则表达式
  • SQL中LIMIT和IFNULL的使用
  • 基于Druid的接口测试自动化方案
  • 技术
2020-07-07

使用Docker部署Python开发调试运行环境

首页插图

郭群 2020年07月07日 记录于此

# 一、背景

Python2已经寿终正寝了,对Python3没有需求的项目,可以继续用Python2维护,有Python3使用需求的项目,势必要迁移到Python3了。 但服务器目前自带的Python大多数还是Python2版本,少数有Python3的,也是Python3.5居多,想使用指定版本的Python3,有点难:

  • 因为我们内网环境,离线安装,编译,各种碰壁;
  • 而且直接升级服务器的Python版本,可能会给其他使用服务器的同学带来一定的麻烦;

为了环境的隔离和可迁移,我们应该使用Docker来解决这种问题。本文抛砖引玉,提供一个样例给大家参考。如有不当,欢迎指正。

# 二、思路

使用Python3的项目,多数是人工智能、数据分析治理相关的项目,为了更好的生态体验,我选择使用Debian10(buster)系统的Python; 比较新且相对稳定的Python版本为Python3.7,我选择Python3.7.7版本。

确立了镜像,接下来要考虑为镜像定制什么内容。

使用容器,我们期望每个容器的功能是单一的,这也是符合Docker的理念。因此我们的镜像定制原则为能少则少,一切从简。 为了能够方便使用,我们只增加两个程序:

  • sshd(更方便灵活的连接操作容器,比如使用PyCharm的远程调试功能等)
  • vim (便于直接修改容器内的文件,便于调试)

# 三、实现过程

提醒!!!提醒!!!提醒!!!

第(三)~(六)章为镜像构建的过程,有兴趣的可以了解下,需要自己定制镜像的可以参考下;

若仅需使用Python3.7.7的Python镜像,直接阅读第(七)~(九)章即可。

# (一)、选定Docker镜像版本

Python3.7.7,基于debian10的镜像python:3.7.7-buster

# (二)、下载docker镜像

docker pull python:3.7.7-buster
1

# (三)、启动Docker镜像

docker run --name py3.7.7env --rm -it -v xxxxxx:yyyyy python:3.7.7-buster /bin/bash
1

测试Python是否正确,pip命令是否可用

# (四)、配置apt源

由于原生镜像是精简化配置,没有vim,不便于操作,需要安装,安装前先配置apt源,加快安装速度,磨刀不误砍柴工。

配置网易源:

# 1、拷贝apt配置文件到本地

docker cp py3.7.7env:/etc/apt/sources.list .
1

# 2、编辑配置

image-20200706161201426

# 3、备份容器内的配置

image-20200706161240001

# 4、拷贝网易apt配置到容器内

image-20200706161351280

# 5、检测配置是否拷贝成功

image-20200706161433185

# 6、更新源

image-20200706161513438

# (五)、安装常用服务

# 1、安装vim

image-20200706161610209

# 2、安装、配置sshd服务

image-20200706161839790

# (1)、配置/etc/ssh/sshd_config
PasswordAuthentication yes
PermitRootLogin yes
1
2
# (2)、启动

image-20200706162551682

# (3)、修改密码

image-20200707090441935

# (六)、保存定制好的镜像,导入内网

提交容器保存为镜像

查看提交的镜像

导出镜像

下一步,光闸传入内网,导入镜像。

导入镜像 查看镜像是否导入成功

# (七)、使用定制的镜像启动容器

启动容器,开放22端口供ssh连接,挂载代码和相关用到的目录

docker run --name py3.7.7env -it --rm -v /etc/localtime:/etc/localtime:ro -v /home/qguo/AITestDBManager:/home/AITestDBManager qguo/py_env:3.7.7-buster_v1 /bin/bash
1

或者使用docker-compose启动
docker-compose.yml配置如下

version: "3"

services:
  py_env:
    image: qguo/py_env:3.7.7-buster_v1
    container_name: py3.7.7env_AITestDBManager
    stdin_open: true
    tty: true
    restart: unless-stopped
    networks:
      ait_net:
        ipv4_address: 192.147.1.2
    ports:
      - "2333:22"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /home/qguo/AITestDBManager:/home/AITestDBManager
        
networks:
  ait_net:
    driver: bridge
    ipam:
      config:
        - subnet: 192.147.1.0/16
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

使用docker-compose启动下
启动示例

# (八)、测试ssh登录

记得先在容器内启动ssh服务,service ssh start。

启动sshd服务

ssh使用配置的2333端口登陆

# (九)、在容器内安装所需的python包

烽火内网安装Python第三方包,请认准PyPiManger。

PyPiManger闪亮登场:http://172.16.111.6:8897/
PyPiManager主页
使用指导

配置PyPiManger的pip config
配置pip

安装下试试,丝般顺滑。
pip install

运行一下试试看:

# 总结和思考

虽然我们可以通过这种容器化的方式,为每个人提供一个独立的Python开发调试和运行环境,但还是有一定的不便之处。 后续我们可以考虑通过开源平台应用,定制模板,快速创建容器,通过WEB方式创建Docker容器,管理Docker容器,有空我会在下一篇文章中介绍下如何实现。

# 附件

镜像类型 镜像名称 下载地址 MD5校验码
官方Docker镜像 Python3.7.7 python:3.7.7-buster http://172.16.111.6:40000/share/0FhgL5dY a13dd3343a4377cbed388dd3916697b6
定制的Docker镜像镜 Python3.7.7 qguo/py_env:3.7.7-buster_v1.tar http://172.16.111.6:40000/share/JSCqHe1_ 8610ae6ab91a6384bd59ab56522aa254
#Python#Docker#测试环境
上次更新: 7/26/2026, 3:17:15 PM
Docker网桥导致网络故障分析
Habor-轻量化容器服务自动部署工具

← Docker网桥导致网络故障分析 Habor-轻量化容器服务自动部署工具→

最近更新
01
测试覆盖度量全景图
11-30
02
Prism测试覆盖度量
11-30
03
AITDBClient使用文档
11-15
更多文章>
Theme by Vdoing | Copyright © 2021-2026 toddlerya | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式