问题描述

在容器中需要使用sudo或者su root时候,权限不够,被灵魂提问。

VS Code 配置docker 管理员权限终端_docker

然而,镜像是官方发布的,翻遍了github+issues也没有找到password.

解决

Attach shell

在docker插件中,attach shell 可以直接获得shell。

VS Code 配置docker 管理员权限终端_docker_02

所以,在Attach Shell指令连接(exec)容器的时候,添加-u 0 或者-u root 即可。

Attach命令docker插件写死的,需要修改这里。

VS Code 配置docker 管理员权限终端_Code_03


点击扩展设置:

VS Code 配置docker 管理员权限终端_docker_04

找到需要修改的指令

VS Code 配置docker 管理员权限终端_容器_05

settings.json中进行修改:

VS Code 配置docker 管理员权限终端_配置文件_06


修改完成后,在这里可以获得root用户的bash

VS Code 配置docker 管理员权限终端_运维_07

附加到 Visual Studio Code

有时候,想要开一个新的工作区,里面只有docker容器中的文件,然而此时 附加到 Visual Studio Code的指令,获得的终端仍然是非root

VS Code 配置docker 管理员权限终端_配置文件_08


只需要在打开新的附加工作区后,按下F1,打开新的命名容器配置文件

VS Code 配置docker 管理员权限终端_Code_09


在配置文件中,新增:

"remoteUser": "root",  // 或者 "remoteUser": "0",  一样的
  • 1.

重启终端,获得root权限。

VS Code 配置docker 管理员权限终端_运维_10

参考链接:

  1.  Docker 容器内的 Root 用户和密码
  2.  Dev Containers插件文档