需求分析:
简单来说就是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部署遇到的几个问题:
- 生产环境中运行正常,使用docker创建镜像后运行出现大量僵尸进程
- docker You need to be root to perform this command.
- dockerfile无法使用pip
- 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
版权声明:本文为weixin_43870646原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。