容器退出后,如何退出Docker exec?

分享于 

2分钟阅读

互联网

  繁體

问题:

在Docker i连接退出后,如何使用docker exec -ti优雅地退出已连接到的Docker容器?

我唯一能找到退出的方法是kill,如果退出原始容器,运行shell命令的docker exec挂起。

有没有更优雅的方法?


答案1:

请使用CTRL + P,然后使用CTRL + Q。更多详情在这里

docker run-t-i→可以按Ctrl+P&Ctrl+Q顺序分离,并使用docker attach重新附加

docker run-i→不能按Ctrl+P&Ctrl+Q顺序分离;会破坏标准输入

docker run→不能用Ctrl+P&Ctrl+Q ;可以SIGKILL客户端;可以使用docker attach重新附加

希望这有帮助。


答案2:

首先使用detached模式而不是在前台运行容器:


docker run --name mynginx -p 80:80 -d nginx



然后你可以用Docker执行


docker exec -it mynginx /bin/sh



请记住,如果要附加到容器进行检查,则必须指定--interactive,-i和--tty和-t选项,因为您的容器已经在您先前的docker run中在后台运行主进程-d命令。这样,当您完成检查容器时,可以从ctrl d或logout命令正常退出容器,就像从普通shell退出一样



DOC  Docker  DOCK  Contain  EXE  EXEC