当前位置: 首页 > 面试题库 >

如何将Docker-ubuntu容器启动到bash中?

夏侯航
2023-03-14
问题内容

这个问题的答案不起作用。

在我可以attach接受或不接受该-t标志之前,docker容器始终会退出。我可以列出所有尝试过的命令,但这是start exec
attach各种-it标志和的组合/bin/bash

如何将现有的容器启动到bash中?为什么这么难?这是对Docker的“不当”使用吗?

编辑:我用创建了容器docker run ubuntu。有关容器的信息:60b93bda690f ubuntu "/bin/bash" About an hour ago Exited (0) 50 minutes ago ecstatic_euclid


问题答案:

首先,容器不是虚拟机。容器是用于运行进程的隔离环境。容器的生命周期与内部运行的进程绑定在一起。当进程退出时,容器也退出,隔离环境也消失了。的“附加到容器”或“进入容器”,其实就是你走的隔离环境中的意义
正在运行的进程 ,因此,如果你的进程已经退出,你的容器也已退出,因此没有容器为你attachenter。所以的命令docker attachdocker exec是在目标 上运行 的容器。

docker run中进行配置Dockerfile并内置到Docker映像中时,将启动哪个进程。以image
ubuntu为例,如果您运行docker inspect ubuntu,则会在输出中找到以下配置

"Cmd": ["/bin/bash"]

这意味着该进程是在运行时启动docker run ubuntu/bin/bash,但是您没有处于交互模式,也没有向其分配tty,因此该进程立即退出,容器退出。这就是为什么您无法再次输入容器的原因。

要启动容器并输入bash,请尝试:

docker run -it ubuntu

然后,您将被带入容器外壳。如果您打开另一个终端,并且docker ps,您会发现该容器正在运行,您可以docker attach对其进行操作或docker exec -it <container_id> bash再次输入它。

您也可以参考此链接以获取更多信息。



 类似资料:
  • 问题内容: 我正在尝试创建一个将自动启动apache的Dockerfile。没事。但是,如果我登录到容器并运行它就可以了。为什么我不能从Dockerfile运行该命令? 问题答案: 问题出在这里:执行此命令时,进程将与外壳分离。但是Docker仅在主进程处于活动状态时才能工作。 解决方案是在 前台 运行Apache 。必须看起来像这样:(仅更改了最后一行)。

  • 问题内容: 我用mysql启动了一个docker容器。 实际上,我想创建一个新用户和一个新表-我必须在MySQL Workbench中进行操作。 这是我的docker run命令: 我的问题是: 如何添加创建用户和表的sql启动脚本(仅用于容器的首次启动)? 我必须执行哪些步骤? 有人可以帮我吗? 非常感谢! 问题答案: 你需要通过创建用户,ENV VAR和使用量与启动脚本映射目录(,,) 解释来

  • 问题内容: 我使用以下命令创建了容器: 以下是命令: 真的没有太多要说的,我希望容器能启动并保持正常运行。这是日志: 问题答案: 您正在尝试运行,它是需要tty 才能运行的交互式外壳。使用,在“分离”模式下运行此命令实际上没有任何意义,但是您可以通过添加到命令行来做到这一点,以确保容器具有与其关联的有效tty并保持连接状态: 在启动分离的容器时,您通常会运行某种长期存在的非交互式进程(例如,或We

  • 本文向大家介绍Docker如何进入启动容器,包括了Docker如何进入启动容器的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Docker如何进入启动容器,分享给大家,具体如下: 在使用-d参数时,容器启动后会进入后台,用户无法看到容器中的信息,也无法进行操作。 这个时候如果需要进入容器进行操作,有多种方法,包括使用官方的attach或exec命令,以及第三方的nsenter工具等。 1、at

  • 我有一个Ubuntu Xenial容器,在我的Arch Linux计算机上安装了amd64体系结构。容器工作正常。但是,当我第二次尝试启动容器时,出现以下错误: 容器启动失败。 要获得更多详细信息,请在前台模式下运行容器。 其他信息可以通过设置--logfile和--log优先级选项获得。 是什么原因造成的? 在使用-F、-logfile和--logpriority选项运行后得到了这个。 lxc开

  • 问题内容: 要启动容器,我输入以下命令: 但我想在此容器中打开外壳以键入mongo命令。我应该运行什么命令来执行相同的操作? 问题答案: 您可以通过运行以下命令来运行交互式mongo shell: 否则,如果您的容器已经在运行,则可以使用以下命令: