Shell 无法将docker pid管道传输到bash命令
我通常希望在docker映像上打开bash shell。这方面的多命令流程是:Shell 无法将docker pid管道传输到bash命令,shell,awk,docker,xargs,Shell,Awk,Docker,Xargs,我通常希望在docker映像上打开bash shell。这方面的多命令流程是: $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES bba983d72d48 scubbo/datenight "apachectl -DFOREGROU" 7
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
bba983d72d48 scubbo/datenight "apachectl -DFOREGROU" 7 days ago Up 7 days 0.0.0.0:80->80/tcp pensive_bell
$ docker exec -it bba983d72d48 bash
我想抄近路。但是,我得到以下错误:
$ docker ps | awk 'NR > 1 {print $1}' | xargs -I {} docker exec -it {} bash
cannot enable tty mode on non tty input
通过一点谷歌搜索,我发现-然而,如果我删除-t
选项,命令会立即“完成”
我已确认,将$docker ps | awk'NR>1{print$1}'
的输出手动复制粘贴到docker exec-it{}bash
的适当位置是成功的
编辑:从管道中剪切docker ps
,以下操作也会失败:
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4f20409c37b7 scubbo/datenight "apachectl -DFOREGROU" 8 days ago Up 8 days 0.0.0.0:80->80/tcp drunk_northcutt
$ docker ps -q
4f20409c37b7
$ echo '4f20409c37b7' | xargs -I {} docker exec -it {} bash
cannot enable tty mode on non tty input
我倾向于这样做,但我会把我的命令嵌套起来
docker exec -it $(docker ps | awk 'NR > 1 {print $1}') bash
不过警告一句,如果有多个容器在运行,您将收到错误。注意,
docker ps-q
只输出运行容器的ID
如果您只启动了一个容器,只需执行以下操作
docker exec-it$(docker ps-q)bash
如果要输入上次启动的容器
docker exec-it$(docker ps-lq)bash
如果在启动容器时为其命名
docker run——名称怀旧…
然后你就可以用
docker exec-it$(docker ps-q--filter“name=怀旧”)bash
检查文件
谢谢,这是一组简洁的命令!不过,我仍然不确定为什么不能将id导入
xargs docker exec
。