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

1.安装docker

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

2.拉取python镜像

拉取python镜像

bash 复制代码
docker pull python

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

3.启动python镜像

创建一些脚本

bash 复制代码
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安装依赖即可, 可使用加速仓库

bash 复制代码
pip install flask -i https://mirrors.aliyun.com/pypi/simple/ requests

5.打包容器为镜像

bash 复制代码
docker commit python_env python_env_release:1.0

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

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

bash 复制代码
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

运行

bash 复制代码
./run.sh

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

相关推荐
AutumnWind04205 分钟前
【Docker Compose 快速入门】
运维·docker·容器
QYRdata41 分钟前
2026-2032年图形处理云服务器CAGR预计达18.7%
运维·服务器·服务发现
分布式存储与RustFS1 小时前
图床搬到自己的对象存储:PicGo 加 S3 插件的完整配置
运维·云原生·开源·对象存储·分布式存储·s3·性能基准
月落汀兰1 小时前
建池后类型不可修改!深度拆解 Ceph PG 放置组,副本 / 纠删码池选型,快照与命名空间避坑
运维·ceph
技术人生0012 小时前
VMware Workstation 安装 Ubuntu 24.04 LTS 完整教程
运维·服务器·ubuntu
ai小陈2 小时前
GPU服务器租用容器实战:Docker数据卷持久化与安全重建
服务器·人工智能·安全·docker·ai·gpu算力
智能运维指南2 小时前
从分散运维到统一运维:2026 统一运维管理体系建设路径与选型要点
运维·一体化运维·智能运维·嘉为蓝鲸
ITyunwei09872 小时前
ITIL 5 落地前,先补齐工单数据底座的 4 步
运维·企业微信
如果'\'真能转义说3 小时前
Docker Desktop | 本地化挂载 Postgresql
docker·postgresql·容器