जब मैं आउटपुट docker execको किसी अन्य कमांड से पाइप करता हूं , तो यह मेरे टर्मिनल की लाइन एंडिंग को गड़बड़ाने के लिए प्रकट होता है।
उदाहरण के लिए:
$ docker exec -it foo sh -c 'echo {\"a\":\"b\",\"c\":\"d\"}' | jq
{
"a": "b",
"c": "d"
}
$
लेकिन अगर मैं तुरंत मेजबान पर, एक ही टर्मिनल में एक ही कमांड चलाता हूं:
$ sh -c 'echo {\"a\":\"b\",\"c\":\"d\"}' | jq
{
"a": "b",
"c": "d"
}
...जैसा सोचा था।
अगर मैं आउटपुट को पाइप करता हूं xxd, तो यह सीआर चरित्र के साथ-साथ LF (0d0a, 0a के बजाय) को पेश करता है; इससे आउटपुट भी गड़बड़ हो जाता है xxd:
$ docker exec -i -t foo sh -c 'echo {\"a\":\"b\",\"c\":\"d\"}' | xxd
00000000: 7b22 6122 3a22 6222 2c22 6322 3a22 6422 {"a":"b","c":"d"
00000010: 7d0d 0a
अगर मैं \r\nखुद को छोड़ कर डॉक करने की कोशिश करता हूं, तो यह ठीक है:
$ printf "{\"a\":\"b\",\"c\":\"d\"}\r\n" | xxd
00000000: 7b22 6122 3a22 6222 2c22 6322 3a22 6422 {"a":"b","c":"d"
00000010: 7d0d 0a }..
$
... जिसका अर्थ है कि यह docker exec।
मेरे मेजबान और कंटेनर दोनों लिनक्स चला रहे हैं। docker infoरिपोर्ट Server Version: 18.03.1-ce। docker -vरिपोर्ट Docker version 18.03.1-ce, build 9ee9f40।
docker execमेरे टर्मिनल (अस्थायी रूप से) ने क्या किया , और मैं इसे कैसे ठीक करूं?
ubuntu:latestया समान के साथ पुन: पेश कर सकते हैं ? (मैं नहीं कर सकता)
-t; अगर कोई यह समझाते हुए उत्तर लिख सकता है कि, यह पर्याप्त होगा।