如何输入已经使用新TTY运行的Docker容器

 mobiledu2502885853 发布于 2023-02-06 14:42

我有一个在前台运行Apache服务的容器.我希望能够从另一个shell访问容器,以便在其中"查找"并检查文件.目前,如果我附加到容器,我只是看着Apache守护进程,无法运行任何命令.

是否可以将另一个tty附加到正在运行的容器上?可能,我可以利用Docker实际上只是环绕LXC容器这一事实?我试过sudo lxc-console -n [container-id] -t [1-4]但似乎只有一个tty可用,那就是运行apache守护进程的tty.也许有一种方法可以在构建期间启用多个lxc控制台?

如果可能的话,我宁愿使用openssh服务配置和构建容器.

5 个回答
  • 使用docker 1.3,有一个新命令docker exec.这允许您输入正在运行的泊坞窗:

    docker exec -it [container-id] bash
    

    2023-02-06 14:44 回答
  • 您应该使用名为'nsenter'的JérômePetazzoni工具在不使用SSH的情况下输入容器.请参阅:https://github.com/jpetazzo/nsenter

    只需运行即可安装: docker run -v /usr/local/bin:/target jpetazzo/nsenter

    然后使用该命令docker-enter <container-id>输入容器.

    2023-02-06 14:44 回答
  • 第一步骤,这样就集装箱ID:

    docker ps

    这将向您显示类似

    容器ID图像命令创建的状态端口名称

    1170fe9e9460 localhost:5000 / python:env-7e847468c4d73a0f35e9c5164046ad88“ ./run_notebook.sh” 26秒前向上25秒0.0.0.0:8989->9999/tcp SLURM_TASK-303337_0

    1170fe9e9460 在这种情况下是容器ID。

    其次,进入泊坞窗:

    docker exec -it [container_id] bash

    因此在上述情况下: docker exec -it 1170fe9e9460 bash

    2023-02-06 14:46 回答
  • 在容器中运行tmux / GNU Screen怎么办?似乎更简单的方法是通过一个简单的方法来访问任意数量的vty:

    $ docker attach {container id}
    

    2023-02-06 14:46 回答
  • 更新

    从docker 0.9开始,对于下面的步骤到现在工作,现在必须在重启守护进程之前用docker守护进程启动选项更新/etc/default/docker文件'-e lxc'(我是通过重新启动主机来完成的).

    更新到/ etc/default/docker文件

    这都是因为......

    ... [docker 0.9]包含一个新的"引擎驱动程序"抽象,使得可以使用除LXC之外的其他API来启动容器.它还提供了一个基于新API库(libcontainer)的新引擎驱动程序,它能够在不使用LXC工具的情况下处理控制组.主要问题是,如果依靠lxc-attach对容器执行操作,比如在容器内启动shell,这对于开发环境非常有用......

    资源

    请注意,这将阻止docker 0.11的新主机唯一网络可选功能 "正常",您将只看到环回接口.错误报告


    事实证明,针对不同问题的解决方案也是这个问题的解决方案:

    ...您可以使用docker ps -notrunc获取完整的lxc容器ID,然后lxc-attach -n <container_id>在该容器中以root 身份使用run bash.

    更新:您很快就需要使用ps --no-trunc而不是ps -notrunc被弃用.

    在此输入图像描述 找到完整的容器ID

    在此输入图像描述 输入lxc attach命令.

    在此输入图像描述 Top显示我的apache进程正在运行docker启动.

    2023-02-06 14:46 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有