私は通常、ドッカーイメージ上でbashシェルを開きたいと思っています。このためのマルチコマンドプロセスは次のようになります:docker pidをbashコマンドにパイプすることはできません
$ 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
少しグーグルから、私はthis issueを見つけた - 私は-t
オプションをドロップする場合は、コマンドはすぐに「完了します」。
私は、docker exec -it {} bash
の適切な位置に$ docker ps | awk 'NR > 1 {print $1}'
の出力を手動でコピーして貼り付けが成功したことを確認しました。
EDIT:パイプから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 -q --filter "name=nostalgic") bash
でそれをフィルタリングすることができます!私はまだIDを 'xargs docker exec'にパイプすることができないのかどうかは分かりません。 – scubbo