to the official Docker docs अनुसार, यह जो वह स्वरूप है जैसे द्वारा समझा जाता है GELF messages के रूप में एक कंटेनर की stdout
और stderr
उत्पादन प्राप्त करने के लिए संभव है Graylog/Graylog2 और logstash।का उपयोग डोकर-रचना GELF लॉग ड्राइवर के साथ
यह ठीक काम करता है जब मैं कमांड लाइन से मैन्युअल रूप से अपने कंटेनर चलाता हूं। उदाहरण के लिए,
docker run --log-driver=gelf --log-opt gelf-address=udp://localhost:12201 busybox echo This is my message.
मेरी Graylog2 सर्वर के लिए एक लॉग संदेश भेज देंगे स्थानीय होस्ट जो एक यूडीपी इनपुट श्रोता बंदरगाह पर कॉन्फ़िगर किया गया 12201.
अब, मैं docker-compose के साथ एक ही लॉग विकल्पों का उपयोग करना चाहते है पर चल रहा है जो , दस्तावेज़ों के अनुसार, should be possible in principle।
Traceback (most recent call last):
File "<string>", line 3, in <module>
File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 39, in main
File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 21, in sys_dispatch
File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 27, in dispatch
File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.docopt_command", line 24, in dispatch
File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.command", line 59, in perform_command
File "/code/build/docker-compose/out00-PYZ.pyz/compose.cli.main", line 495, in up
File "/code/build/docker-compose/out00-PYZ.pyz/compose.project", line 265, in up
File "/code/build/docker-compose/out00-PYZ.pyz/compose.service", line 369, in execute_convergence_plan
File "/code/build/docker-compose/out00-PYZ.pyz/compose.service", line 270, in create_container
File "/code/build/docker-compose/out00-PYZ.pyz/compose.service", line 643, in _get_container_create_options
File "/code/build/docker-compose/out00-PYZ.pyz/compose.service", line 656, in _get_container_host_config
File "/code/build/docker-compose/out00-PYZ.pyz/docker.utils.types", line 27, in __init__
ValueError: LogConfig.type must be one of (json-file, syslog, none)
रिकॉर्ड के लिए, यह: हालांकि, डॉक्स किसी भी लॉग प्रारूपों लेकिन json-file
, syslog
और none
और जब मैं अपने docker-compose.yml
फ़ाइल में
my-container:
container_name: ...
build: ...
ports: ...
log_driver: "gelf"
log_opt:
gelf-address: "udp://localhost:12201"
की तरह कुछ में शामिल हैं तो docker-compose up
के साथ विफल उल्लेख नहीं है डॉकर-कंपोज़ 1.4.0 और डॉकर 1.8.1 पर था, डी 12ea79 बनाएं।
जाहिर है, डॉकर और डॉकर-कंपोज़ कार्यान्वयन के समान स्तर पर नहीं हैं। मैंने पाया कि यह पहले ही हल हो चुका है और Master branch
में गीथब पर शामिल है, https://github.com/docker/compose/issues/1869 और https://github.com/docker/docker-py/pull/724 देखें।
क्या मौजूदा मास्टर शाखा से या तो डॉकर-कंपोज़ को फिर से स्थापित करने या इसे मौजूदा स्थापना में मैन्युअल रूप से जोड़ने का कोई तरीका है? मुझे वह फ़ाइल नहीं मिली जहां मेरा होस्ट पर प्रतिबद्धता कहीं भी जाती है ...
यह 'डॉकर-पीई == 1.4.0' में तय किया जा रहा है और इसे 'डॉकर-कंपोज़ == 1.5.0' रिलीज – dnephin
हाँ में तय किया जाएगा, मैंने यह भी देखा। हालांकि, 'डॉकर-कंपोज़ == 1.5.0' को [10/13/2015] पर जारी किया जाएगा (https://github.com/docker/compose/wiki/1.5.0- मिलिस्टोन- प्रोजेक्ट- पेज), इसलिए मुझे शायद थोड़ा इंतजार करना पड़ेगा।मैंने अभी 'पीआईपी इंस्टॉल-यू https: // github.com/docker/docker-py.git' के माध्यम से गीथब से नवीनतम' मास्टर 'स्थापित करने का प्रयास किया और फिर' डॉकर-कंपोज़ - वर्जन 'सही आउटपुट '1.5 देता है .0-dev'। फिर भी, 'डॉकर-कंपोज़ अप' जैसे सभी डॉकर-कंपोज़ कमांड 'वैल्यूएरर को बढ़ाएं' ("कोई JSON ऑब्जेक्ट डीकोड नहीं किया जा सकता है") ValueError: कोई JSON ऑब्जेक्ट डीकोड नहीं किया जा सकता है। इस पर कोई विचार? – Dirk
इसे मास्टर पर अब तय किया जाना चाहिए – dnephin