এমন কোনও পাত্রের লগটি আমি দেখতে পাচ্ছি যা থেকে বেরিয়ে এসেছে?
আমি ব্যবহার করে প্রস্থানিত কনটেইনারটির ধারক আইডি পেতে পারি docker ps -aতবে এটি যখন চলছিল তখন আমি কী জানতে চাই তা জানতে চাই।
এমন কোনও পাত্রের লগটি আমি দেখতে পাচ্ছি যা থেকে বেরিয়ে এসেছে?
আমি ব্যবহার করে প্রস্থানিত কনটেইনারটির ধারক আইডি পেতে পারি docker ps -aতবে এটি যখন চলছিল তখন আমি কী জানতে চাই তা জানতে চাই।
উত্তর:
ব্যবহার docker logs। এটি থামানো ধারকগুলির জন্যও কাজ করে এবং ধারকটির মূল প্রক্রিয়াটির পুরো STDOUT এবং STDERR স্ট্রিমগুলি ক্যাপচার করে:
$ docker run -d --name test debian echo "Hello World"
02a279c37d5533ecde76976d7f9d1ca986b5e3ec03fac31a38e3dbed5ea65def
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
49daa9d41a24 debian "echo test" 2 minutes ago Exited (0) 2 minutes ago test
$ docker logs -t test
2016-04-16T15:47:58.988748693Z Hello World
stack=s1 && c=$(task_id=$(docker stack ps "$stack" --filter desired-state=shutdown | tail -n +2 | head -n 1 | awk '{print $1}') && docker inspect --format '{{.Status.ContainerStatus.ContainerID}}' "$task_id") && docker logs "$c"শুরু হয়: কমান্ডের শুরুতে স্ট্যাকের নাম নির্দিষ্ট করা হয়।
docker logs --tail=50 <container id> শেষ পঞ্চাশ লাইনের জন্য - যখন আপনার ধারক দীর্ঘকাল ধরে চলমান তখন কার্যকর।
ফাইলের শেষে স্ক্রলড কম, একটি প্রস্থানিত পাত্রে সরাসরি লগফিল দেখতে, আমি ব্যবহার করি:
docker inspect $1 | grep 'LogPath' | sed -n "s/^.*\(\/var.*\)\",$/\1/p" | xargs sudo less +G
./viewLogs.sh CONTAINERNAME হিসাবে চালান
এই পদ্ধতিটি docker logsভিত্তিক পদ্ধতির উপরে সুবিধা অর্জন করে যে ফাইলটি প্রবাহিত না করে সরাসরি খোলা হয়।
sudo প্রয়োজনীয়, যেহেতু লগপথ / ফাইল সাধারণত রুটের মালিকানাধীন থাকে