# docker attach 命令
該命令的主要作用就是進入容器,可以查看內部的持續輸出,或以交互方式控制容器。
## 語法
```
docker attach [OPTIONS] CONTAINER
```
## 實例
一般只用指定容器名或容器的 id 即可附著上去,如:
```
docker attach attach_me
```
或者:
```
docker attach 1897ed54a226
```
運行結果如下圖,可以看到已經進入容器內部。

## 注意
### 1、關于進入容器
進入容器基本上有三種方法:
* 使用 ssh 進行登錄
* 使用 nsenter、nsinit 等第三方工具
* 使用 Docker 本身提供的工具
第一種方法需要在容器內啟動 sshd,違反了 Docker 所倡導的一個容器一個進程的原則,同時也存在開銷和攻擊面增大的問題;第二種方法需要額外學習使用第三方工具。所以最簡單的方法還是使用`docker attach`命令。
### 2、關于退出容器
如果直接使用 `exit` 命令或者按 Ctrl + C,不僅會退出,容器也會停止運行。應該使用 Ctrl + P 命令,然后使用 Ctrl + Q 命令,即可退出容器的虛擬終端,同時容器還在運行。
### 3、關于 attach 和 exec
官方不推薦使用`docker attach`命令進入開啟了交互模式的容器,及使用了 -t 參數的容器。docker attach 的主要功能是查看信息,容器內布操作則有更加方便的`docker exec`命令。
## 幫助
```
$ docker attach --help
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 attach 命令
- 構建鏡像的 docker build 命令
- 提交容器的 docker commit 命令
- 復制文件到宿主機的 docker cp 命令
- 創建容器的 docker create 命令
- 查看容器變化的 docker diff 命令
- 查看事件的 docker events 命令
- 進入容器的 docker exec 命令
- 導出容器的 docker export 命令
- 查看鏡像歷史的 docker history 命令
- 查看本地鏡像的 docker images 命令
- 導入容器的 docker import 命令
- 查看 docker 信息的 docker info 命令
- 查看各項詳細信息的 docker inspect 命令
- 殺死容器的 docker kill 命令
- 導入鏡像的 docker load 命令