社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  docker

为什么在附加到Docker时没有登录?

egor7 • 4 年前 • 365 次点击  
$ docker run --rm -it busybox
/ # who
<empty>

在下一个会话中,我正在尝试附加到此Docker容器,并期望第二个用户出现,但再次没有运气:

$ docker attach `docker container ls | grep busybox | cut -d" " -f1`
/ # who
<empty again>

所以问题是-为什么没有登录发生不是由第一次运行和附加,而不是由后续附加?为什么连一个登录都没有登录到这个容器中?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/38370
 
365 次点击  
文章 [ 2 ]  |  最新文章 4 年前
Alexei Martianov
Reply   •   1 楼
Alexei Martianov    4 年前

编辑:读了一些书之后,我觉得亚历山大的回答更切题。我一直在阅读一些有用的链接:

https://docs.docker.com/engine/security/security/

https://lwn.net/Articles/531114


据我所知,BusyBox Docker容器非常基础,不支持成熟Linux的所有功能。

在这里 I thought I understood Docker until I saw the BusyBox docker image 有一个关于那个图像是什么以及它的用途的讨论。

Alexander Fasching
Reply   •   2 楼
Alexander Fasching    4 年前

who 从中读取用户列表 /var/run/utmp . 在常规Linux系统上, login 程序提示输入用户名和密码,然后启动用户的shell。它也会更新 /var/运行/utmp 新用户。 同样的事情也发生在ssh和telnet服务器上。他们应该更新 /var/运行/utmp .

在码头集装箱里, 登录 通常不执行。Docker使用 Linux Namespaces ,它不提供完整的Linux系统。当您输入Docker容器时,给定的入口点或命令用pid 1执行。 后续 docker exec 以类似的方式处理呼叫。Docker进入容器的名称空间并执行给定的命令。