1周前 (03-01)  每天5分钟Docker    抢沙发
文章评分 0 次,平均分 0.0

我们经常需要进到容器里去做一些工作,比如查看日志、调试、启动其他进程等。有两种方法进入容器:attach 和 exec。

docker attach

通过?docker attach?可以 attach 到容器启动命令的终端,例如:

两种进入容器的方法 - 每天5分钟玩转 Docker 容器技术(23)

这次我们通过 “长ID” attach 到了容器的启动命令终端,之后看到的是echo?每隔一秒打印的信息。

注:可通过 Ctrl+p 然后 Ctrl+q 组合键退出 attach 终端。

docker exec

通过?docker exec?进入相同的容器:

两种进入容器的方法 - 每天5分钟玩转 Docker 容器技术(23)

说明如下:

①?-it?以交互模式打开 pseudo-TTY,执行 bash,其结果就是打开了一个 bash 终端。

② 进入到容器中,容器的 hostname 就是其 “短ID”。

③ 可以像在普通 Linux 中一样执行命令。ps -elf?显示了容器启动进程while?以及当前的?bash?进程。

④ 执行?exit?退出容器,回到 docker host。

docker exec -it <container> bash|sh?是执行 exec 最常用的方式。

attach VS exec

attach 与 exec 主要区别如下:

  1. attach 直接进入容器?启动命令?的终端,不会启动新的进程。
  2. exec 则是在容器中打开新的终端,并且可以启动新的进程。
  3. 如果想直接在终端中查看启动命令的输出,用 attach;其他情况使用 exec。

当然,如果只是为了查看启动命令的输出,可以使用?docker logs?命令:

两种进入容器的方法 - 每天5分钟玩转 Docker 容器技术(23)

-f?的作用与?tail -f?类似,能够持续打印输出。

下一节聊聊运行容器的最佳实践。

 

除特别注明外,本站所有文章均为铁匠运维网原创,转载请注明出处来自http://www.sx-gzf.com/23268.html

关于

发表评论

暂无评论

切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

扫一扫二维码分享