如何在非root用户运行的容器中安装新软件包?

时间:2019-10-03 15:05:53

标签: docker containers alpine

我需要在运行中的容器中安装诸如curl之类的简单软件包,但遇到此错误:

~ $ apk add curl
ERROR: Unable to lock database: Permission denied
ERROR: Failed to open apk database: Permission denied

我知道如何在Dockerfile中更改用户,但是我无权访问Docker文件,因此我需要在容器内部或在容器内部打开终端时执行此操作。我尝试使用--user=,但没有用:

kubectl exec -n kube-system --user="root" -it tiller-deploy-75f6c87b87-xtpxl /bin/ash
error: auth info "root" does not exist

如何获得root用户访问权限或安装curl?

2 个答案:

答案 0 :(得分:0)

您的用户在使用sudoer吗? 运行以下命令:

sudo apk add curl

如果上述命令不起作用,请运行此命令。

docker exec -it CONTAINER_NAME apk add curl

答案 1 :(得分:0)

使用kubectl describe pod ...查找运行Pod的节点和容器ID(docker:// ...)

SSH进入节点

运行docker exec -u根ID-/ bin / bash