为docker容器安装python pip不起作用
我正在尝试为docker容器配置python pip。但这给了我一个错误,我没有得到允许。在我使用sudo之后,它又给了我一个错误 我尝试使用sudo获得root权限。我还尝试了exec命令并运行为docker容器安装python pip不起作用,docker,pip,Docker,Pip,我正在尝试为docker容器配置python pip。但这给了我一个错误,我没有得到允许。在我使用sudo之后,它又给了我一个错误 我尝试使用sudo获得root权限。我还尝试了exec命令并运行 sudo docker container run davidrazd/discord-node-10 sudo apt-get install python-pip sudo docker container exec davidrazd/discord-node-10 sudo apt-get i
sudo docker container run davidrazd/discord-node-10 sudo apt-get install python-pip
sudo docker container exec davidrazd/discord-node-10 sudo apt-get install python-pip
docker:来自守护程序的错误响应:OCI运行时创建失败:容器\u linux。go:348:启动容器进程导致“exec:\“sudo\”:在$PATH中未找到可执行文件:未知
没有sudo:
E:无法打开锁文件/var/lib/dpkg/lock frontend-打开(13:权限被拒绝)
E:无法获取dpkg前端锁(/var/lib/dpkg/lock frontend),您是root用户吗
这里有三个原因,我认为你应该重新考虑使用Docker,确保你能最大限度地利用容器
…-node-10
的图像。您不应该需要特定节点的特定图像。它们都应该在同一个映像上运行,并在必要的程度上在运行时进行配置(这应该保持在最低限度,通常是发现或动态配置)。如果10
是一个版本,则应该使用标记来对其进行版本设置,而不是图像ID本身exec
在运行中的容器内一次性执行安装有一个有效的用例,用于一次性安装包(知道安装将在容器停止时消失),但docker run。。。apt get install对我来说真的没有意义。正如@DavidMaze在一条问题注释中指出的,应该始终将安装作为Dockerfile的一部分。如果您要将包安装到长寿命容器中,请不要,也不要。docker用户遇到的最糟糕的事情是,他们试图将容器视为长寿命虚拟机,而他们本应将容器视为维持最低状态的短暂运行时环境,这些环境本质上是不可变的(因此很容易被下一个版本所取代),他们的映像包含所有安装时依赖项,并将任何长期数据存储在单独的docker卷上(希望该卷本身已备份)
sudo
。但是sudo
在容器的上下文中没有多大意义,并且通常没有安装(如果安装了,则意味着您必须以某种方式将用户设置为sudo,因此它不会让您的生活变得更轻松,只是更困难)。您可以使用docker exec-u root…
将用户在docker exec
时间设置为root
。但是你不应该真的需要这样做-所有的设置都应该在Dockerfile中完成,你应该发布一个新的Dockerfile来更改版本我自己也是docker的忠实用户,在docker中构建了几乎所有的应用程序,因为它极大地简化了表达运行时需求的过程,所以我想我在这里是从经验的角度讲的。如果您的容器不是不变的,那么您将无法获得docker的任何价值;您将遇到与没有容器时相同的问题,但管理工具更少。Docker在运行时消除了大部分管理—利用这一点,不要与之抗争 您通常不会在正在运行的容器中安装软件:一旦容器退出,软件就会丢失,您必须重复安装。将这样的安装步骤放在docker文件中,然后构建包含软件的自定义映像。如何修改docker映像?