Docker Dokerfile搭建Centos环境下的Python程序

本文探讨了如何在Docker镜像中兼顾Linux环境和Python应用需求,通过多阶段构建和CentOS/Python组合,解决yum与pip依赖安装问题。还介绍了在生产环境中遇到的孤儿进程处理、权限提升及Dockerfile使用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求分析:
简单来说就是Dockerfile文件创建的docker镜像需要同时满足Liunx环境和Python环境
需要解决的问题:
使用docker镜像打包python程序,但是需要用到liunx的yum安装一些依赖包
现状分析:
如果Docker镜像中只依赖Centos,
则无法使用python的pip进行requirement.txt依赖包的安装

如果Doker镜像中只依赖Python,则无法使用yum进行安装运行环境
错误尝试:

在这里插入图片描述

使用From多阶段构建,结果是镜像正常生成,
但是产生了一个None镜像,虽然可以使用run 启动镜像,
但是liunx的依赖并没有起作用
解决办法:

这个容器映像包括Python 3.8,作为Python 3.8应用程序的S2I基础映像。 用户可以在RHEL和CentOS之间进行选择。
在这里插入图片描述
在这里插入图片描述

centos/python-38-centos7
再使用Dokerfile进行创建镜像,依赖完成,运行成功!
使用Doker部署遇到的几个问题:
  1. 生产环境中运行正常,使用docker创建镜像后运行出现大量僵尸进程
  2. docker You need to be root to perform this command.
  3. dockerfile无法使用pip
  4. dockerfile无法使用yum
解决办法

1、有两个解决办法可以让docker的init进程能够处理孤儿进程

启动docker容器时,指定init进程为bash,
由bash进程对孤儿进程的资源进行回收

run -d -p 8000:8000 --name xxx xxx:1.0 bash

增加专门的 init 进程

run --init -d -p 8000:8000 --name xxx xxx:1.0 

2、docker You need to be root to perform this command

您需要获取执行此命令的权限

只需要在dokerfile中加入 USER root 提升权限即可

3、 dockerfile无法使用pip

dockerfile依赖使用python

FROM python:3.8.2

4、dockerfile无法使用yum

dockerfile依赖使用centos

FROM centos:7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成都—大数据开发工程师—杨洋

你的打赏是我创作的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值