echo$UID提供主机ID,而不是容器根用户ID(docker/linux)



我的主机(ubuntu(上的当前用户ID是:

$ echo "Host UID = $UID"
Host UID = 1000

但当我运行这个docker容器时,我得到了相同的UID:

$ docker run --rm --name test-container centos:7.9.2009 /bin/bash -c "echo $UID"
1000

如果我以交互方式运行容器,我会得到预期的0:

$ docker run -it --rm --name test-container centos:7.9.2009
[root@4a79cb82abec /]# echo $UID
0

当我使用/bin/bash -c "echo $UID"运行容器时,为什么我得到了错误的(我的主机用户(UID?

您想要从容器内部获取UID。但是,变量UID是在主机外壳本身上展开的。使用单一报价以避免其扩展:

docker run --rm --name test-container centos:7.9.2009 /bin/bash -c 'echo $UID'

最新更新