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方式因為退出終端,導致整個容器退出。