একটি ধারক থেকে লগ সহ একটি লগ ফাইল কোথায়?


116

আমি বেশ কয়েকটি পাত্রে ব্যবহার করে চালাচ্ছি docker-compose। কমান্ড সহ অ্যাপ্লিকেশন লগগুলি দেখতে পাচ্ছি docker-compose logs। তবে আমি উদাহরণস্বরূপ কোথাও প্রেরণে কাঁচা লগ ফাইলটি অ্যাক্সেস করতে চাই? এটি কোথায় অবস্থিত? আমি অনুমান করি যে এটি প্রতিটি কন্টেইনারে পৃথক লগ (কনটেইনার ভিতরে?) তবে আমি এটি কোথায় খুঁজে পাব?

উত্তর:


190

একটি ধারকের লগগুলি পাওয়া যাবে:

/var/lib/docker/containers/<container id>/<container id>-json.log

(আপনি যদি ডিফল্ট লগ ফর্ম্যাটটি ব্যবহার করেন যা জসন)


3
ফোল্ডার অনেক পছন্দ আছে 004279dd2985037950beeba7e6fe45c10354476d3b82afb68e72dd612b03a8ff। কোন নির্দিষ্ট ধারকটির জন্য কোন ফোল্ডারটি দেখতে হবে তা কীভাবে জানবেন?
প্রবীণ শ্রীপতি

3
@ প্রবীণস্রাপতি কন্টেনারগুলি চালনার জন্য ধারক আইডিটি প্রথম কলামে দেখানো হয়েছে যদি আপনি করেনdocker ps
সিএস

1
@ প্রবীণস্পৃপতি লিখুন docker ps, আপনি তাদের আইডি সহ আপনার সমস্ত উপলব্ধ পাত্রে পাবেন। আপনার পছন্দসই ধারকটির আইডি অনুলিপি করুন, তারপরে /var/lib/docker/containers/রান থেকে ls | grep <paste the copied docker ID>। তারপরে আপনি সেই ডকার কনটেইনারটি দেখতে পাবেন
TheLebDev

cd /var/lib/docker/containers/ -বাশ: সিডি: / ভেরি / লিব / ডকার / পাত্রে /: অনুমতি অস্বীকৃত sudo cd /var/lib/docker/containers/ সুডো: সিডি: কমান্ড পাওয়া যায় নি
ক্যানব্যাক্স

2
@ ক্রিস docker ps --no-truncসম্পূর্ণ আইডিটি দেখার জন্য আমাকে করতে হয়েছিল
ড্যান জেড

97

আপনি docker inspectপ্রতিটি ধারক তাদের লগগুলি কোথায় তা দেখতে পারবেন :

docker inspect --format='{{.LogPath}}' $INSTANCE_ID

এবং, লগগুলি তাদের সম্মিলিত আকার পরিচালনা করার জন্য বা লগিংয়ের প্যারামিটারগুলি নিজেই সামঞ্জস্য করার জন্য আপনি নীচের প্রাসঙ্গিকটি খুঁজে পেতে চেষ্টা করছেন।

লগগুলির জন্য সংরক্ষিত জায়গার পরিমাণ নির্ধারণ করা

এটি লগের ইতিহাস সাফ করার দক্ষতার জন্য অনুরোধ থেকে নেওয়া হয়েছে (ইস্যু 1083 ):

ডকার 1.8 এবং ডকার-কমপোজ 1.4 এর মধ্যে ডকার কম্পোজ লগ ড্রাইভার এবং লগ-অপ্ট সর্বোচ্চ-আকার ব্যবহার করে লগের আকার সীমাবদ্ধ করার জন্য ইতিমধ্যে একটি পদ্ধতি বিদ্যমান :

mycontainer:
  ...
  log_driver: "json-file"
  log_opt:
    # limit logs to 2MB (20 rotations of 100K each)
    max-size: "100k"
    max-file: "20"

সংস্করণ '2' এর ডকার রচনা ফাইলগুলিতে সিনট্যাক্সটি কিছুটা বদলেছে:

version: '2'
...
mycontainer:
  ...
  logging:
    #limit logs to 200MB (4rotations of 50M each)
    driver: "json-file"
    options:
      max-size: "50m"
      max-file: "4"

(নোট করুন যে উভয় বাক্য গঠনে, সংখ্যাগুলি স্ট্রিং হিসাবে প্রকাশ করা হয়েছে, উদ্ধৃতিতে)

docker-compose logsসমাপ্ত না হওয়া সহ সম্ভাব্য সমস্যা


1
সংক্ষিপ্ত সংস্করণ: ডকার পরিদর্শন -ফ '{{। লগপথ}}' $ INSTANCE_ID
বিয়েনভেনিডো ডেভিড

12

প্রতিটি ধারকের লগ কত স্থান নিচ্ছে তা দেখতে এটি ব্যবহার করুন:

docker ps -qa | xargs docker inspect --format='{{.LogPath}}' | xargs ls -hl

(আপনার sudoআগে প্রয়োজন হতে পারে ls)।


আমি একটি অনুমতি অস্বীকার পেতে।
শেকডক

1
শেষে সুডো যুক্ত করা সহায়তা করেছে: docker ps -qa | xargs docker inspect --format='{{.LogPath}}' | xargs sudo du -hl
শেকডক

2

কমতে সরাসরি লগফিলটি দেখতে, আমি ব্যবহার করি:

docker inspect $1 | grep 'LogPath' | sed -n "s/^.*\(\/var.*\)\",$/\1/p" | xargs sudo less

./viewLogs.sh CONTAINERNAME হিসাবে চালান


2

Windows এ, ডিফল্ট অবস্থান হল: C:\ProgramData\Docker\containers\<container-id>-json.log


উন্নয়নের জন্য স্থানীয় পাত্রে চালানোর সময় এটিই! ধন্যবাদ - এই তথ্যটি পাওয়া খুব কঠিন ছিল
পার্সি

1

8/22/2018 পর্যন্ত, লগগুলি পাওয়া যাবে:

/data/docker/containers/<container id>/<container id>-json.log

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.