我使用下面的命令在其中一个Pod中安装curl:
$ apt-get install curl
字符串
但是,我得到下面的错误:
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
型
当我试图删除文件/var/lib/dpkg/lock-frontend时,
$ rm /var/lib/dpkg/lock-frontend
rm: remove write-protected regular empty file '/var/lib/dpkg/lock-frontend'? y
rm: cannot remove '/var/lib/dpkg/lock-frontend': Permission denied
型
我也不能使用sudo命令:
$ sudo rm /var/lib/dpkg/lock-frontend
bash: sudo: command not found
型
请帮助,因为我是Kubernetes和Pod的新手。
2条答案
按热度按时间f3temu5u1#
首先,这是一个反模式。容器是无状态的,在部署后不会改变。
无法运行
apt-get
的原因是因为您正在使用非特权用户运行容器,您可以在命令提示符中使用“$”符号。此外,sudo
未安装,因此不可用。如果你真的想在你的容器中有curl,你有几个选择:
curl
curl
(不推荐)。第一种方法的示例,我建议你使用的方法,涉及如下所示的Dockerfile:
字符串
然后你需要构建这个新的镜像(从你的
Dockerfile
所在的同一个目录):型
在您使用
docker push
将映像推送到注册表后,您可以更新Pod
以使用your-new-image-name:version
作为映像。ny6fqffe2#
如果你试图从容器中进行故障排除,你可以尝试利用bash内置的TCP/UDP套接字支持,例如:
字符串
如果你的pod/container安装了编程语言,Python,Ruby,或者Node,你也可以使用一个bash行来测试。