python – 在Docker中安装和使用pip和virtualenv

我想在Docker容器中安装Python,Pip和virtualenv,这是Ubuntu,我通过Dockerfile创建图像:

FROM ubuntu:16.04

RUN apt-get update -y

RUN apt-get

RUN apt-get python3 -y

RUN apt-get install python3-pip -y

RUN pip install virtualenv
...

当它到了这里时,它出现了“/ bin / sh:1:pip:not found”,但是在安装过程中没有显示异常,这是不是意味着我没有安装pip对吧?或者在使用pip命令之前我应该​​做什么?

然后我像这样更改了Dockerfile:

...
RUN apt-get python3 -y

RUN apt-get install python3-pip -y

RUN apt-get install python3-virtualenv -y 

RUN virtualenv --no-stie-packages -p /path/python3 py3env
...

但它仍然说/ bin / sh:1:virtualenv:未找到,here is it

我还安装了git,git clone命令运行正常,可以使用.我哪里错了,或者我该怎么办?

解决方法:

在基于Debian的平台上,包括Ubuntu,the command installed by python3-pip is called pip3,以便它与任何系统安装的Python 2及其pip和平共存.

有点类似,virtualenv命令不是由包python3-virtualenv安装的;得到那个,you need apt-get install -y virtualenv.

请注意,venv包含在Python 3标准库中,因此您根本不需要安装任何东西.

python3 -m venv newenv

你为什么要在Docker里面想要一个virtualenv呢? (在某些情况下它是有意义的,但在绝大多数情况下,您希望Docker容器尽可能简单,这意味着,以root身份安装所有内容,并在需要更新某些内容时重建整个容器.)

另外,您通常希望最小化RUN语句的数量.在调试时创建多个层可能是可以防御的,但是什么都不做的层肯定是浪费.也许还发现apt-get可以一次安装多个包.

RUN apt-get update -y && \
    apt-get install -y python3 python3-pip && \
    ...

和&&只要其中一个命令失败,就会导致整个RUN序列失败.

相关文章

Docker是什么Docker是 Docker.Inc 公司开源的一个基于 LXC技...
本文为原创,原始地址为:http://www.cnblogs.com/fengzheng...
镜像操作列出镜像:$ sudo docker imagesREPOSITORY TAG IMA...
本文原创,原文地址为:http://www.cnblogs.com/fengzheng/p...
在 Docker 中,如果你修改了一个容器的内容并希望将这些更改...
在Docker中,--privileged 参数给予容器内的进程几乎相同的权...