我的主机(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'