任何命令都挂在 docker 容器内

Any commands hang inside docker container

任何命令都会在 docker 容器内挂起终端。

我使用 docker exec -t php-zts /bin/bash 登录容器 然后打印任何基本命令(date、ls、cd / 等)

命令挂起[=13​​=]

当我按下 ctrl+c 时,我回到主机。 但是,如果我 运行 没有容器的任何命令 - 它可以正常工作

docker exec -t php-zts date
Wed Jan 26 00:04:38 UTC 2022

tty 在 docker-compose.yml 中启用 docker 系统 p运行e 和所有清理都帮不了我。

找不到问题,脑残了。请帮助:(

解决方案是将标志 -i/--interactivedocker run 一起使用。这里是 a relevant section of the documentation:

--interactive , -i Keep STDIN open even if not attached

您可以尝试 运行 您的容器,使用 -i 进行交互,使用 -t 进行 tty,这将允许您在容器内导航和执行命令

docker run -it --rm  alpine

另一方面,您可以 运行 带有 docker 运行 的容器,然后在该容器内执行命令,如下所示:

  • tail -f /dev/null 将使您的容器保持 运行ning。
  • -d 将在后台执行 运行 命令。
docker run --rm -d --name container1 alpine tail -f /dev/null 
or
docker run --rm -itd --name container1 alpine sh # You can use -id or -td or -itd
  • 这将允许您从容器内部 运行 命令。
  • 您可以选择 sh、bash 或您喜欢的任何其他 shell。
docker exec -it container1 alpine sh