Docker 部署 Python 脚本容器实战备忘录

admin5个月前 (07-29)博文37

在日常开发中,经常需要将本地的 Python 脚本部署到服务器上长期运行,并保证它断电重启后自动拉起、日志可持续查看、更新方便

这里整理一套基于 Docker 的标准化部署流程,用于快速复用与迁移。

一、准备工作

确保你的项目目录下包含以下文件:

your_project/
├── Dockerfile            # Docker 构建文件
├── requirements.txt      # Python 依赖包列表
├── your_script.py        # 你要运行的 Python 脚本
└── logs/                 # (可选)挂载日志输出目录

二、Dockerfile 示例

# 使用轻量级 Python 基础镜像
FROM python:3.10-slim

# 设置工作目录
WORKDIR /app

# 安装依赖
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# 拷贝主程序
COPY your_script.py .

# 启动脚本
CMD ["python", "your_script.py"]

三、构建镜像

进入项目根目录,执行以下命令构建镜像:

docker build -t bot:1.5log .
bot 为镜像名称,1.5log 是版本标签,推荐使用语义化命名便于区分。

四、运行容器

执行如下命令启动容器,并将本地 logs 文件夹挂载到容器内部:

docker run -d --name ethbot \
  -v $(pwd)/logs:/app/logs \
  --restart always \
  bot:1.5log

参数

说明

-d

后台运行

--name ethbot

容器名称自定义

-v $(pwd)/logs:/app/logs

将本地 logs 映射进容器,便于查看日志

--restart always

保证断电/重启自动拉起

五、常用命令速查

命令

说明

查看日志

docker logs -f ethbot

进入容器

docker exec -it ethbot bash

停止容器

docker stop ethbot

删除容器

docker rm -f ethbot

删除镜像

docker rmi bot:1.5log

重建镜像

修改完代码后重新执行 docker build ...

 

小技巧建议

  • 持续运行的脚本建议使用日志模块输出到文件,确保数据可查

  • 容器内建议使用 UTC+8 时间同步 方便排查问题

  • 每次构建建议使用版本号标记(如 :v1.5log),方便回滚

如果你也有多个 Python 脚本需要后台运行,不妨将此模板封装成你自己的镜像结构,真正实现“一键部署 + 稳定运行”的目标。

相关文章

记录opwrt下docker使用macvlan配置文件

记录opwrt下docker使用macvlan配置文件

因某些原因opwet下docker端口直接暴露在wan口直通公网,在各种配置iptables无果后决定使用macvlan方式管理docker网络。 一是本人docker部署不多,二是可以固定容器IP...

一次 TeslaMate 部署踩坑记录:群晖 Container Manager 卷删除不干净与 PostgreSQL 升级翻车

一次 TeslaMate 部署踩坑记录:群晖 Container Manager 卷删除不干净与 PostgreSQL 升级翻车

最近帮朋友在群晖 NAS 上重新部署 TeslaMate,本以为是个很常规的 Docker 项目部署任务,结果一路踩坑,最后发现问题的根源居然是卷删除不干净加上之前人操作不规范。这次经历挺有代表性,所...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。