exec:

进入容器后开启一个新的终端,可以在里面操作(常用)

attach

进入容器正在执行的终端,不会启动新的进程

这里举例来说明区别:
首先, 我们执行以下命令来创建和启动一个容器:

docker run --name "CustomUbuntu" ubuntu /bin/bash -c "while true; do sleep 1; echo '!!test!!'; done" 

这行命令的作用就是创建一个容器,然后一直循环输出 !!MyUbuntu!! ;
执行之后再终端上会看到如图所示内容:
image.png

然后我们分别执行,execattach 进入容器;

首先执行 docker ps, 可以看到当前正在运行中的容器列表:
image.png

680d 执行 exec ,进入到容器内部,可以输入其他的命令:
image.png

680d 执行 attach,可以发现进入到创建容器时指定命令所在的窗口中,此时无法输入其他命令
image.png


Architecture
0 声望0 粉丝

知其然, 更要知其所以然~