【问题标题】:Shell is detached automatically from docker containerShell 自动与 docker 容器分离
【发布时间】:2021-03-12 08:57:10
【问题描述】:

我正在使用 docker 在 macOS Apple Silicon M1 上开发一些东西。 (MacMini)

我确实遵循了一些事情。

  1. docker pull官方ubuntu/focal
  2. 创建图像
docker create -it --mount type=bind,source=${HOME}/work/dev1,destination=/root/work/dev1 --name dev1 ubuntu:focal /bin/bash
  1. 创建容器并附加它
docker start -ia dev1

在此之后,我已经将这个容器用于编码、运行节点应用程序等。但是,当我将这个附加的容器保持近 1 小时而没有任何输入时,它会自动分离,我会回到 macOS shell 提示符。

它没有退出。如果命令docker ps,容器还活着。

如果我命令docker attach dev1,我可以继续与容器的外壳交互。

我不知道为什么它会自动分离。如何预防?

【问题讨论】:

    标签: docker apple-m1


    【解决方案1】:

    虽然它并没有真正回答为什么和如何的问题,但感觉很想发表评论。

    如果直接运行容器并使用 docker exec 附加到它,是否也有同样的问题?

    在 2. 步骤中,将 create 替换为 run,将 -ti 替换为 -d 以分离运行,并将 /bin/bash 替换为 tail -f /dev/null,这样您的进程 1 会阻塞并且不会立即返回。

    docker run -d --mount type=bind,source=${HOME}/work/dev1,destination=/root/work/dev1 --name dev1 ubuntu:focal tail -f /dev/null
    
    docker exec -ti dev1 bash
    

    【讨论】:

    • 感谢您的建议。如果我找不到确切的原因,您的建议对我很有用。我想我的问题是 macOS M1 版本上 docker 的一种错误,因为它不是稳定版本。
    猜你喜欢
    • 2018-09-09
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 2020-03-06
    相关资源
    最近更新 更多