【发布时间】:2021-03-31 14:29:45
【问题描述】:
我有一个 Alpine docker 容器,根据我使用 ssh 连接的方式,路径会有所不同。如果我使用 PTY shell 连接:
ssh root@localhost sh -lc env | grep PATH
打印出来:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
但是如果不使用这个外壳:
ssh root@localhost sh -c env | grep PATH
打印出来:
PATH=/bin:/usr/bin:/sbin:/usr/sbin
为什么会这样?我需要做什么才能使第二个命令产生与第一个命令相同的输出?
【问题讨论】:
-
如果你真的 ssh'ing 到一个容器,那么
$PATH的值不是你最大的问题,真的。 jpetazzo.github.io/2014/06/23/docker-ssh-considered-evil -
@CarlosGranados 您到底在使用什么高山图像?我认为 SSH 不是默认 alpine 映像的一部分。实际上我不明白为什么人们总是想通过 SSH 连接到容器中。为什么不使用
docker exec? -
@dpr 和另一个名字不可能的人:我不是自愿选择 ssh'ing,它是一个正在这样做的工具,我正在尝试修复该工具。