docker attach 和 docker exec

docker attach

docker attach -- Attach to a running container.

常用选项:

--sig-proxy=true:Proxy all received signals to the process. 当指定--sig-proxy=false时,ctrl+c和ctrl+d 不会传递信号给docker进程而关闭容器。

用法:

docker attach [OPTIONS] CONTAINER

docker attach可以attach到一个已经在运行的容器的stdin,然后进行命令执行的动作。

但是需要注意的是,如果直接从这个stdin中exit(ctrl+d),会导致容器的停止。非常不建议使用此命令操作容器。

如果不小心退出了,再次启动容器,进入容器启动服务即可。

正确的退出姿势 --> 组合键:Ctrl+P+Q

另外,docker attach 有类似 screen 可以共享屏幕的作用。同时attach到同一个container可以看到同步操作。


docker exec

docker exec -- Run a command in a running container.

用法:

docker exec [OPTIONS] CONTAINER COMMAND

常用选项:

-d, --detach=false:Detached mode: run command in the background. 分离模式,在后台执行COMMAND。
-i, --interactive=false:Keep STDIN open even if not attached. 保持标准输出。如果不加该选项,执行命令会没有输出。
-t, --tty=false:Allocate a pseudo-TTY. 分配一个虚拟终端。

同时使用 -it 选项时,会打开一个跟我们平时使用的TTY一样的终端。也不会像attach方式因为退出终端,导致整个容器退出。

原文地址:https://www.cnblogs.com/keithtt/p/6997560.html