• 第 4 章 容器


    两种进入容器的方法

    docker attach

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

    1 root@ubuntu:~# docker run -d ubuntu /bin/bash -c "while true ;do sleep 1;echo I_am_in_container;done"
    2 d7534aebaf5488f112d9d7d3558fc04b18a9c2ae6a8a6ffd735f0923a7e0bdf5
    3 root@ubuntu:~# 
    4 root@ubuntu:~# docker attach d7534aebaf5488f112d9d7d3558fc04b18a9c2ae6a8a6ffd735f0923a7e0bdf5
    5 I_am_in_container
    6 I_am_in_container
    7 I_am_in_container
    8 I_am_in_container

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

    !!!注:可通过 Ctrl+p 然后 Ctrl+q 组合键退出 attach 终端。N多资料都是这样讲的,实际操作中没有退出终端。

    docker exec

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

     1 root@ubuntu:~# docker exec -it d7534aebaf54 bash
     2 root@d7534aebaf54:/# 
     3 root@d7534aebaf54:/# ps -elf
     4 F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
     5 4 S root         1     0  0  80   0 -  4594 wait   08:41 ?        00:00:00 /bin/bash -c while true ;do sleep 1;echo I_am_in_container;done
     6 4 S root       303     0  0  80   0 -  4627 wait   08:46 pts/0    00:00:00 bash
     7 0 S root       319     1  0  80   0 -     0 ?      08:46 ?        00:00:00 [sleep]
     8 0 R root       320   303  0  80   0 -  8600 -      08:46 pts/0    00:00:00 ps -elf
     9 root@d7534aebaf54:/# 
    10 root@d7534aebaf54:/# exit
    11 exit
    12 root@ubuntu:~#

    说明:

    • -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 命令:

    1 root@ubuntu:~# docker logs -f  d7534aebaf54
    2 I_am_in_container
    3 I_am_in_container
    4 I_am_in_container
    5 I_am_in_container
    6 I_am_in_container
    • -f 的作用与 tail -f 类似,能够持续打印输出。

    --------------------------引用来自--------------------------------

    https://mp.weixin.qq.com/s?__biz=MzIwMTM5MjUwMg==&mid=2653587641&idx=1&sn=ac54f44b34834dfd5ed0d0accaf705d1&chksm=8d3080a0ba4709b6d66e55e0b7154b402687298f75f7232306670daba3a9f4b7181b8bc35482&scene=21#wechat_redirect

  • 相关阅读:
    牛客小白赛23
    三分查找模板和例题
    链式前向星存图模板
    树形dp求解树的重心和例题
    P3915-树的分解-(dfs)
    P2119 魔法阵-(桶排序+前后缀和)
    小阳的贝壳-(差分+线段树+gcd)
    NOJ1370: [蓝桥杯2018初赛]测试次数-(dp)
    begin.lydsy 入门OJ题库:3611-3613:神炎皇、降雷皇、幻魔皇
    1797: [Noi2010]海拔
  • 原文地址:https://www.cnblogs.com/gsophy/p/10278883.html
Copyright © 2020-2023  润新知