docker进入容器的两种方法

原创 浪子丶刘少  2019-06-19 12:00  阅读 1,270 次 评论 0 条 百度未收录

一、docker attach

通过 docker attach 可以 attach 到容器启动命令的终端,例如:
[root@host01 ~]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/httpd     latest              b7cc370ac278        3 weeks ago         132 MB

docker attach 77b9e0c6a923

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

docker exec -it 77b9e0c6a923 bash
说明如下:
-it 以交互模式打开 pseudo-TTY,执行 bash,其结果就是打开了一个 bash 终端。

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

可以像在普通 Linux 中一样执行命令。 

ps -elf 显示了容器启动进程while 以及当前的 bash 进程。

4 S root 1541 1289 0 80 0 - 55443 futex_ 19:27 pts/0 00:00:00 /usr/bin/docker-current exec -it 55f6504925fc bash

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

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

三、attach VS exec

attach 与 exec 主要区别:
  1. attach 直接进入容器 启动命令 的终端,不会启动新的进程。
  2. exec 则是在容器中打开新的终端,并且可以启动新的进程。
  3. 如果想直接在终端中查看启动命令的输出,用 attach;其他情况使用 exec。
当然,如果只是为了查看启动命令的输出,可以使用 docker logs 命令:

docker logs -f 77b9e0c6a923
注:-f 的作用与 tail -f 类似,能够持续打印输出。

四、容器运行小结

容器运行相关的知识点:
  1. 当 CMD 或 Entrypoint 或 docker run 命令行指定的命令运行结束时,容器停止。
  2. 通过 -d 参数在后台启动容器。
  3. 通过 exec -it 可进入容器并执行命令。
指定容器的三种方法:
  1. 短ID。
  2. 长ID。
  3. 容器名称。 可通过 --name 为容器命名。重命名容器可执行docker rename。
容器按用途可分为两类:
  1. 服务类的容器。
  2. 工具类的容器。

本文地址:https://www.ezliushao.com/223.html
加入我们:请加入刘少技术博客交流群:扫描二维码刘少技术博客的QQ交流群 | 浪子丶刘少 QQ:1150110267(注:微信暂停添加好友)
版权声明:本文为原创文章,版权归 浪子丶刘少 所有,欢迎分享本文,转载请保留出处!

发表评论


表情