如何在非 root 运行 容器中安装新包?

How to install new packages in a non root running container?

我需要在 运行 容器中安装简单的软件包,例如 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?

你的用户是sudoer吗? 运行 这个命令:

sudo apk add curl

如果上面的命令不起作用,运行这个命令。

docker exec -it CONTAINER_NAME apk add curl

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

SSH 进入节点

run docker exec -u root ID -- /bin/bash