docker exec 和 docker attach的作用与区别,docker run -it 的联系, exit后容器停止?

Docker运行中的容器,可以通过docker run -d直接创建后台运行的容器,也可以通过输入Ctrl+P+Q把前台容器放入后台运行。
那么如何进入后台运行的容器?
输入exit会不会使得容器停止?

docker attach

docker attach命令可以attach到一个已经运行的容器的stdin,然后进行命令执行的动作。但是需要注意的是,如果在这里输入exit,会导致容器的停止

Usage:  docker attach [OPTIONS] CONTAINER

Attach local standard input, output, and error streams to a running container

Options:
      --detach-keys string   Override the key sequence for detaching a
                             container
      --no-stdin             Do not attach STDIN
      --sig-proxy            Proxy all received signals to the process
                             (default true)

docker exec

Usage:  docker exec [OPTIONS] CONTAINER COMMAND [ARG...]

Run a command in a running container

Options:
  -d, --detach               Detached mode: run command in the background
      --detach-keys string   Override the key sequence for detaching a
                             container
  -e, --env list             Set environment variables
  -i, --interactive          Keep STDIN open even if not attached
      --privileged           Give extended privileges to the command
  -t, --tty                  Allocate a pseudo-TTY
  -u, --user string          Username or UID (format:
                             <name|uid>[:<group|gid>])
  -w, --workdir string       Working directory inside the container

可以看到,其中参数-i -t -ddocker run有些相同。其实,exec会进入创建一个伪终端,与直接run创建出来的相似。但是不同点在于,不会因为输入exit而终止容器
这种方式类似于ssh!进入容器内进行操作
通常用法: docker exec -it 容器ID /bin/bash

总结

  1. docker run -it IMAGES_NAME会创建前台进程,但是会在输入exit后终止进程。
  2. docker attach DOCKER_ID 会通过连接stdin,连接到容器内输入输出流,会在输入exit后终止进程.
  3. docker exec -it DOCKER_ID /bin/bash 会连接到容器,可以像SSH一样进入容器内部,进行操作,可以通过exit退出容器,不影响容器运行。
  4. 以上几种方式均可通过输入Ctrl+P+Q把前台容器放入后台运行,不终止进程
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值