当前位置: 首页 > article >正文

python(9) : docker方式运行python程序(自启动,守护)

1.安装docker

docker(6) : 离线安装docker_docker-19.03.9.tgz-CSDN博客

2.拉取python镜像

 拉取python镜像

docker pull python

镜像加速(按需) : linux配置docker源,国内加速镜像(注册阿里云镜像)_docker加速 清华源-CSDN博客

3.启动python镜像 

 创建一些脚本

cat > Dockerfile <<'EOF'
FROM python
WORKDIR /home
COPY file ./
CMD ["sh","/home/startup.sh"]
EOF
 
cat > build.sh <<'EOF'
docker rm -f python_env:1.0
docker rmi python_env:0.1
docker build -t python_env:1.0 .
EOF
 
cat > exec.sh <<'EOF'
docker exec -it python_env bash
EOF
 
cat > run.sh <<'EOF'
docker rm -f python_env 
path="$( cd "$( dirname "$0"  )" && pwd  )"
cd $path
docker run -d --name=python_env -v $path/share:/home/share  python_env:0.1
docker logs -f python_env 
EOF
 
 
mkdir share
mkdir file
cat > file/startup.sh <<'EOF'
#!/bin/sh
while true
do
  date 
  sleep 5s
done
EOF
 
chmod +x *.sh

构建

./build.sh

启动容器

./run.sh

进入容器

./exec.sh

4.pip安装依赖

python镜像内包含pip和python, 直接使用pip安装依赖即可, 可使用加速仓库

pip install flask -i https://mirrors.aliyun.com/pypi/simple/ requests

5.打包容器为镜像

docker commit python_env python_env_release:1.0

 6.以制作的python镜像运行py程序

选择一个目录为工作目录, 如/home/py_test, 进入该目录, 粘贴复制如下代码生成一些文件

cat > run.sh <<'EOF'
path="$( cd "$( dirname "$0"  )" && pwd  )"
cd $path
python_env_release_version=`cat python_env_release_version`
docker run -d --name=py_test  \
          --restart=always \
          -v $path/code:/home/code \
          -v $path/startup.sh:/home/startup.sh \
          -p 8000:8000 python_env_release:$python_env_release_version
docker logs -f py_test
EOF

cat > lg.sh <<'EOF'
docker logs -f --tail 200 py_test
EOF


cat > python_env_release_version <<'EOF'
1.0
EOF


mkdir code 


cat > startup.sh <<'EOF'
cd /home/code
python my_api.py
EOF

chmod +x run.sh

 运行

./run.sh

my_api.py是一个python flask http接口程序,这样它挂了docker会自动拉起来


http://www.kler.cn/a/282164.html

相关文章:

  • Http常⻅见请求/响应头content-type内容类型讲解(笔记)
  • 解决 IDEA 修改代码重启不生效的问题
  • STM32 Option Bytes(选项字节)
  • 另外一种缓冲式图片组件的用法
  • AWTK-WIDGET-WEB-VIEW 实现笔记 (1) - 难点
  • 31DNS设置
  • 恒电流间歇滴定法 (GITT) 测试教程
  • 国产游戏行业的技术突破与未来展望:挑战与机遇并存
  • macos MacPort 包管理工具安装和使用
  • TCP的连接建立及报文段首部格式
  • P1516 青蛙的约会(exgcd)
  • 操作系统
  • 最火视频素材去哪里找?热门的视频素材网站库分享给你
  • 工业软件架构1:(QT和C++实现)
  • LLama3技术报告笔记(垂直能力)
  • js逆向——异步栈分析(上)
  • Faiss入门心得---向量数据库Faiss的搭建与使用
  • C#/WinForm实现炸弹人游戏
  • PaddleNLP 3.0 支持大语言模型开发
  • 新手学习打怪之编译安装LAMP和LNMP
  • 力扣850.矩形面积 II
  • Python的requests库详细介绍
  • 【持续更新】Mχ Plaayer Pro 1.86.0安卓知名播放器最新免费高级修改版
  • 深入浅出LangChain:从模型调用到Agents开发的全流程指南
  • 【React】跨域问题详解及解决方案
  • 手机三网状态实时查询分享