Docker - 容器的 连接 与 退出

  1. 概述
    1. 连接容器, 退出容器
    2. 暂时都是些草稿, 这个东西
  2. 命令
    1. run
    2. exec
    3. attach
    4. 退出
  3. 选项
    1. -i
    2. -t
    3. -d

1. docker run

  1. 概述
    1. docker run 通常用来创建新容器
    2. docker run 的 三个命令行选项
  2. ref
    1. Confused about Docker -t option to Allocate a pseudo-TTY
  3. 命令行选项 相关的实验
    1. 准备
      1. 基础命令

        # 下面这个, 是 基础命令
        # 后面的 命令行选项, 会按照这个模式插入
        # docker run <option> <image> <cmd>
        > docker run ubuntu /bin/bash
    2. 尝试
      1. 没有选项
        1. 表现
          1. 当场暴毙
      2. 只有 -i
        1. 表现
          1. 可以交互
          2. 但是终端好像出了问题, 命令执行结果看不到
      3. 只有 -d
        1. 表现
          1. 当场暴毙
      4. 只有 -t
        1. 表现
          1. 不会暴毙
          2. 但是输入什么都没反应
          3. 只有退出
      5. -it
        1. 表现
          1. 正确进入容器
          2. 命令可以执行
          3. 结果正确显示
      6. -dt
        1. 表现
          1. 容器正常启动
          2. 容器为 运行状态
  4. 结论
    1. 正常使用的话
      1. 需要 i 或者 d 的配合
        1. -it
          1. 交互式
        2. -dt
          1. 后台式

2. docker: run, exec, attach

  1. 概述
    1. 这三个命令的区别
  2. ref
    1. 小知识:docker run、exec和attach使用和区别
  3. 区别
    1. run
      1. 概述
        1. 在一个 新容器 里执行命令
      2. 常见模式

        > docker run -it <image> <cmd>
        > docker run -dt <image> <cmd>
    2. exec
      1. 概述
        1. 在 已经存在 的容器里, 执行命令
      2. 常见模式

        > docker exec -it <image> <cmd>
    3. attach
      1. 概述
        1. 连接 已经存在 的容器
      2. 常见模式

        > docker attach <image> 
      3. 问题
        1. 尝试发现, 对 -d 容器不太好使
          1. 可以进入
          2. 但是 输入命令, 无法执行
        2. 网上有说, 同一容器被用户 attach 的时候, 会出现阻塞
          1. 没有验证
      4. 结论
        1. attach 可以放弃不用

3. 退出容器

  1. 概述
    1. 从容器中退出
  2. 退出方式
    1. exit
    2. ctrl + q + p

1. exit

  1. 概述
    1. Linux命令行 最常见的退出方式
  2. 操作
    1. 这个简单, 我就不再多说了
  3. 问题
    1. run -it
      1. 问题
        1. 用 run -it 命令启动, 并连接了容器
        2. 直接输入 exit, 会让容器变为 exit 状态
      2. 其他
        1. 使用 run -dt 启动的容器
          1. 如果用 exec -it 连接, 再 exit 退出
            1. 容器不会关闭

2. ctrl + q + p

  1. 概述
    1. 应对 run -it 启动容器的退出问题
  2. 操作
    1. run -it 启动容器
    2. ctrl + q + p 退出
  3. 结果
    1. 正常退出
    2. 容器依然是 up 状态

3. 建议

  1. 建议使用 run -dt 命令启动容器
    1. 概述
      1. 使用 run -dt 命令
      2. 启动成功后, 用 exec -it 连接
      3. 如果要退出的话, 直接 exit 也没有问题
  2. 如果需要用 run -it 命令启动
    1. 概述
      1. 启动后, 需要用 ctrl + q + p 退出
        1. 保证容器不变为 exit 状态

ps

  1. 伪终端
    1. 大概认识, 现在通过 windows 连接 linux 的命令行, 基本都是伪终端
    2. 但是为啥要这么叫, 怎么来的, 我之前看过, 但是现在记不住了...
  2. 其他
    1. docker 镜像的基础知识

猜你喜欢

转载自www.cnblogs.com/xy14/p/11865735.html