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

需求分析:

简单来说就是Dockerfile文件创建的docker镜像需要同时满足Liunx环境和Python环境

需要解决的问题:

使用docker镜像打包python程序,但是需要用到liunx的yum安装一些依赖包

现状分析:

如果Docker镜像中只依赖Centos,
则无法使用python的pip进行requirement.txt依赖包的安装

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

错误尝试:

Docker Dokerfile搭建Centos环境下的Python程序_第1张图片

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

解决办法:

这个容器映像包括Python 3.8,作为Python 3.8应用程序的S2I基础映像。 用户可以在RHEL和CentOS之间进行选择。
Docker Dokerfile搭建Centos环境下的Python程序_第2张图片
Docker Dokerfile搭建Centos环境下的Python程序_第3张图片

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

你可能感兴趣的:(linux,python,docker,dockerfile,centos,linux)