# docker attach 命令
该命令的主要作用就是进入容器,可以查看内部的持续输出,或以交互方式控制容器。
## 语法
```
docker attach [OPTIONS] CONTAINER
```
## 实例
一般只用指定容器名或容器的 id 即可附着上去,如:
```
docker attach attach_me
```
或者:
```
docker attach 1897ed54a226
```
运行结果如下图,可以看到已经进入容器内部。
![](https://box.kancloud.cn/894828cf7cdf213a272da5ea876ed88c_1299x140.png)
## 注意
### 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 命令