?
This document uses PHP Chinese website manual Release
將本地標(biāo)準(zhǔn)輸入,輸出和錯誤流附加到正在運(yùn)行的容器
docker attach [OPTIONS] CONTAINER
名稱,縮寫 | 默認(rèn) | 描述 |
---|---|---|
--detach-keys | 重寫用于分離容器的密鑰序列 | |
--no-stdin | false | 不附加 STDIN |
--sig-proxy | true | 代理所有接收到的信號到過程中 |
命令 | 描述 |
---|---|
docker | 泊塢窗 CLI 的基本命令。 |
用于docker attach
使用容器的ID或名稱將終端的標(biāo)準(zhǔn)輸入,輸出和錯誤(或三者的任意組合)附加到正在運(yùn)行的容器。這允許您查看其正在進(jìn)行的輸出或以交互方式控制它,就好像命令直接在您的終端中運(yùn)行一樣。
注:大
attach
命令將顯示ENTRYPOINT/CMD
過程。這可能看起來像是掛起附加命令,而實(shí)際上,進(jìn)程可能根本沒有與終端進(jìn)行交互。
您可以同時從Docker主機(jī)上的不同會話多次附加到同一包含的進(jìn)程。
要停止容器,請使用CTRL-c
。該密鑰序列發(fā)送SIGKILL
到容器。如果--sig-proxy
為真(默認(rèn)),則CTRL-c
發(fā)送一個SIGINT
到容器。您可以從容器中分離并使用CTRL-p CTRL-q
鍵序列保持運(yùn)行。
注:在容器中作為PID 1運(yùn)行的進(jìn)程被Linux專門處理:它忽略任何具有默認(rèn)操作的信號。因此,進(jìn)程不會在
SIGINT
或SIGTERM
除非它被編碼來這么做。
禁止在附加到啟用tty的容器(即:啟動時-t
)時重定向docker attach
命令的標(biāo)準(zhǔn)輸入。
當(dāng)客戶端連接到容器的Stdio時,請使用docker attach
,Docker使用~1MB內(nèi)存緩沖區(qū)來最大化應(yīng)用程序的吞吐量。如果填充了此緩沖區(qū),API連接的速度將開始影響進(jìn)程輸出寫入速度。這與其他應(yīng)用程序類似,如SSH。因此,不建議運(yùn)行性能關(guān)鍵的應(yīng)用程序,這些應(yīng)用程序在前臺通過緩慢的客戶端連接生成大量輸出。相反,用戶應(yīng)該使用docker logs
命令來訪問日志。
如果需要,可以為DECHACH配置一個覆蓋Docker密鑰序列。如果Docker默認(rèn)序列與用于其他應(yīng)用程序的密鑰序列發(fā)生沖突,則此操作非常有用。有兩種方法可以定義您自己的分離密鑰序列,作為每個容器覆蓋或作為整個配置的配置屬性。
若要重寫單個容器的序列,請使用--detach-keys="<sequence>"
帶docker attach
命令。的格式<sequence>
不是一封信阿-Z,或ctrl-
與下列任何一項(xiàng)相結(jié)合:
a-z
(一個小寫字母字符)
@
(在標(biāo)志處)
[
(左括號)
\\
(兩個反向斜線)
_
(下劃線)
^
(脫字號;補(bǔ)注號)
這些a
,ctrl-a
,X
,或ctrl-\\
的值是有效的密鑰序列的所有實(shí)施例。要為所有容器配置不同的配置默認(rèn)密鑰序列,請參閱配置文件部分。
$ docker run -d --name topdemo ubuntu /usr/bin/top -b $ docker attach topdemo top - 02:05:52 up 3:05, 0 users, load average: 0.01, 0.02, 0.05Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombieCpu(s): 0.1%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 373572k total, 355560k used, 18012k free, 27872k buffers Swap: 786428k total, 0k used, 786428k free, 221740k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 17200 1116 912 R 0 0.3 0:00.03 top top - 02:05:55 up 3:05, 0 users, load average: 0.01, 0.02, 0.05 Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 373572k total, 355244k used, 18328k free, 27872k buffers Swap: 786428k total, 0k used, 786428k free, 221776k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 17208 1144 932 R 0 0.3 0:00.03 top top - 02:05:58 up 3:06, 0 users, load average: 0.01, 0.02, 0.05 Tasks: 1 total, 1 running, 0 sleeping, 0 stopped, 0 zombie Cpu(s): 0.2%us, 0.3%sy, 0.0%ni, 99.5%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 373572k total, 355780k used, 17792k free, 27880k buffers Swap: 786428k total, 0k used, 786428k free, 221776k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 17208 1144 932 R 0 0.3 0:00.03 top^C$ $ echo $?0$ docker ps -a | grep topdemo 7998ac8581f9 ubuntu:14.04 "/usr/bin/top -b" 38 seconds ago Exited (0) 21 seconds ago topdemo
在第二個示例中,您可以看到bash
進(jìn)程返回的退出代碼也被docker attach
命令返回給其調(diào)用者:
$ docker run --name test -d -it debian 275c44472aebd77c926d4527885bb09f2f6db21d878c75f0a1c212c03d3bcfab $ docker attach test root@f38c87f2a42d:/# exit 13 exit $ echo $? 13 $ docker ps -a | grep test 275c44472aeb debian:7 "/bin/bash" 26 seconds ago Exited (13) 17 seconds ago test