And*_*469 54 containers root docker
默认情况下运行时
docker run -it [myimage]
要么
docker attach [mycontainer]
您以root用户身份连接到终端,但我想以其他用户身份进行连接.这可能吗?
Lar*_*Cai 60
用于docker run
:
只需添加选项--user <user>
,即可在启动docker容器时更改为其他用户.
docker run -it --user nobody busybox
Run Code Online (Sandbox Code Playgroud)
对于docker attach
或docker exec
:
由于该命令用于附加/执行到现有进程,因此它直接使用当前用户.
docker run -it busybox # CTRL-P/Q to quit
docker attach <container id> # then you have root user
/ # id
uid=0(root) gid=0(root) groups=10(wheel)
docker run -it --user nobody busybox # CTRL-P/Q to quit
docker attach <container id>
/ $ id
uid=99(nobody) gid=99(nogroup)
Run Code Online (Sandbox Code Playgroud)
如果你真的想要附加到你想拥有的用户,那么
run --user <user>
或在您的Dockerfile
使用中提及它USER
Jas*_*son 39
您可以使用以下命令在正在运行的docker容器中运行shell:
docker exec -it --user root <container id> /bin/bash
您可以USER
在Dockerfile中指定.将使用该帐户执行所有后续操作.您可以USER
在之前指定一行,CMD
或者ENTRYPOINT
如果您只想在启动容器时使用该用户(而不是在构建映像时).从结果图像启动容器时,您将作为指定用户附加.
As an updated answer from 2020. --user , -u option is Username or UID (format: <name|uid>[:<group|gid>]).
Then, it works for me like this,
docker exec -it -u root:root container /bin/bash
Run Code Online (Sandbox Code Playgroud)
Reference: https://docs.docker.com/engine/reference/commandline/exec/
归档时间: |
|
查看次数: |
67007 次 |
最近记录: |