为什么附加到docker busybox映像时没有登录? $docker运行--rm-it总线箱 /#谁

为什么附加到docker busybox映像时没有登录? $docker运行--rm-it总线箱 /#谁,docker,Docker,在下一个会话中,我将尝试连接到此docker容器,并期待第二个用户出现,但再次失败: $ docker run --rm -it busybox / # who <empty> $docker attach`docker container ls | grep busybox | cut-d”“-f1` /#谁 所以问题是-为什么没有登录不是通过第一次运行和附加,不是通过随后的附加?为什么这个容器甚至没有一次登录?编辑:读了一些文章后,我发现Alexander的回答更切题了。我通

在下一个会话中,我将尝试连接到此docker容器,并期待第二个用户出现,但再次失败:

$ docker run --rm -it busybox
/ # who
<empty>
$docker attach`docker container ls | grep busybox | cut-d”“-f1`
/#谁

所以问题是-为什么没有登录不是通过第一次运行和附加,不是通过随后的附加?为什么这个容器甚至没有一次登录?

编辑:读了一些文章后,我发现Alexander的回答更切题了。我通过这种方式阅读了两个有用的链接:


据我所知,busybox docker容器非常基本,不支持成熟Linux的所有功能


这里有一个关于该图像是什么以及它的用途的讨论。

/var/run/utmp
读取用户列表。在常规Linux系统上,
登录
程序会提示输入用户名和密码,然后启动用户的shell。它还使用新用户更新
/var/run/utmp
。 SSH和Telnet服务器也会发生同样的情况。他们需要更新
/var/run/utmp

在Docker容器中,
login
通常不执行。Docker将资源与主机系统隔离,但它不提供完整的Linux系统。当您输入Docker容器时,将使用PID 1执行给定的入口点或命令。
后续的
docker exec
调用也以类似的方式处理。Docker输入容器的名称空间并执行给定的命令。

是否仅针对特定容器-busybox?例如,我只提到了busybox,这种情况也会保留在Ubuntu图像上。你可以试试:
docker-run--rm-it-ubuntu:18.10
然后键入
who
亚历山大的答案现在似乎比在Linux上运行docker更切题,但是这个答案还没有被标记为接受,所以。。。你在Linux上吗?你认为原因可能是操作系统特有的吗?这不是BusyBox特有的。Ubuntu、Debian和Arch图像(可能还有大多数其他图像)也会发生同样的情况。
$ docker attach `docker container ls | grep busybox | cut -d" " -f1`
/ # who
<empty again>