IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Docker构建python环境 -> 正文阅读

[Python知识库]Docker构建python环境

Docker构建python环境 --潘登同学的Linux笔记

Docker网络管理

网络管理的作用,因为每次重启一个服务的ip地址是动态的,如mysql服务,如果重启,有可能python的web应用就访问不到; 虽然我们可以把mysql的接口映射到外网的ip地址上,但是假如我们有很多应用都想将mysql运行在3306这个端口,但是又想只用一个数据库;

那么既可以创建一个docker内部网段(172.18.0.x)

# 斜杠16表示2^16 -2 个可分配的ip地址
docker network create --subnet=172.18.0.0/16 mynet
# (如果想删除的话)删除某个网段 注意: 先删掉网段的容器
docker network rm mynet
# 0和1的ip不能用只能用172.18.0.2往后的
docker network -it mynet --ip 172.18.0.2 python:3.8 bash
# 查看分配的ip地址
docker network ls

创建Python容器

先在宿主机上创建一个目录,将这个目录挂载到python容器里面,以后直接将python项目拷贝进去,就能在python容器里面看见了

# 创建project文件夹
mkdir project
# 创建网段
docker network -it mynet --ip 172.18.0.2 python:3.8 bash
# 创建
docker run -it -d --name=flask_project -p 80:5000 -v /root/project:/root/project --net mynet --ip 172.18.0.2 python:3.8 bash

永久配置清华源

# 首先进入到容器中(指的是exec进去)

pip install pip -U
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# 创建虚拟环境
pip install virtualenv
virtualenv flask_evn
# 启动虚拟环境
source flask_evn/bin/activate

创建数据库容器

docker pull mysql
# -d参数后台运行mysql 可以不先创建宿主机下的目录
docker run --name my_mysql -p 4306:3306 --net mynet --ip 127.18.0.3 -v /root/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123 -d mysql

部署flask项目

# 把要用的全install了
pip install xxx

将数据库连接的地址修改一下,可以不写宿主机的ip地址,直接写刚才的设定的内网ip 127.18.0.3 3306即可

将代码改一下,将debug模式关掉,将app.run()中加入0.0.0.0的参数, 启动一下项目,不需要进浏览器

然后将目录下的所有的__pycache__字节码文件中的.pyc文件留下,可以改个名字 app.pyc,名字只保留 前面的部分 + 后缀,替换掉__pycache__所在的位置,总之最后就是你的项目的python代码被pyc给替代掉了

在这里插入图片描述

然后用cmd将这个项目打包,然后放到Linux上

# 前者是压缩包的名字
tar -cvf C:\Users\潘登\Documents\GitHub\project1.tar C:\Users\潘登\Documents\GitHub\project1

用Xftp7 连接Linux,上传文件到project下

# 进入project目录
cd proeject
# 解压到project下
tar -xvf project1.tar -C /root/project
# 进入python容器
docker exec -it flask_project bash
# 选择虚拟环境
source flask_evn/bin/activate
# 进入目录下 (这个目录好像是与原本Windows的地址有关)
cd /root/project/Users/潘登/Documents/GitHub/project1
# 看看字节码文件
ls

在这里插入图片描述

# 启动项目(有点bug把itsdangerous降到2.0.1)
python app.pyc
# 但是我们想在后台跑服务
nohup python app.pyc > logs.txt

能运行但是访问不到,后续解决…

采用py文件部署

上面不要只把字节码留下,把python源文件留下, 把项目中没用的东西,如.git, flask_env等文件删掉,把源码按照上面方式打包,传到Linux中,按照相同方式

# 最后启动命令为
nohup python app.py > logs.txt

成功运行!!!

在这里插入图片描述

在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-22 20:32:47  更:2022-03-22 20:34:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 21:09:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码