ডকার-কমপোজ রান ব্যবহার করে লগ আউটপুট কীভাবে দেখবেন?


96

আমি যখন ব্যবহার docker-compose upকরি তখন আমি আমার docker-compose.ymlফাইলের সমস্ত ধারক জন্য লগ দেখতে পারি ।

যাইহোক, আমি যখন ব্যবহার docker-compose run appকরি তখন কেবল কনসোল আউটপুট দেখতে পাই appতবে appনির্ভর করে এমন কোনও পরিষেবাদির মধ্যে নেই । অন্যান্য পরিষেবার জন্য লগ আউটপুট কীভাবে দেখতে পাবে?


4
আপনি ব্যবহার করতে পারেনdocker-compose logs -f service_name
জিয়নগবিং জিন

এছাড়াও খেয়াল করুন যে docker-compose runপ্রতিবার এটি কার্যকর করার সময় নতুন ধারক তৈরি করে।
জাজগট

আমি docker-compose runকেবল আমার পরীক্ষা চালানোর জন্য সার্কেলিতে ছুটে চলেছি তাই যদি এটি একটি নতুন ধারক তৈরি করে তবে ঠিক আছে। মূল সমস্যাটি নির্ভরশীল পরিষেবাগুলি থেকে লগ আউটপুটটি না দেখানো।
sthomps

উত্তর:


135

জুলাই 1 লা 2019 আপডেট

docker-compose logs <name-of-service>

ডকুমেন্টেশন থেকে :

ব্যবহার: লগ [বিকল্পসমূহ] [সার্ভিস ...]

বিকল্পসমূহ:

- কোনও রঙ একরঙা আউটপুট উত্পাদন করে।

-f, --ফলো লগ আউটপুট অনুসরণ করুন।

-t, - টাইমস্ট্যাম্পগুলি টাইমস্ট্যাম্পগুলি দেখায়।

--tail = প্রতিটি কন্টেইনারটির জন্য লগের শেষ থেকে দেখানোর জন্য লাইনগুলির সংখ্যা all

ডকার লগগুলি দেখুন

আপনি ডকার রচনাটি পৃথক মোডে শুরু করতে পারেন এবং পরে সমস্ত ধারকটির লগে নিজেকে সংযুক্ত করতে পারেন । আপনি যদি লগগুলি দেখার কাজটি সম্পন্ন করেন তবে আপনি আপনার পরিষেবাগুলি বন্ধ না করে লগগুলি আউটপুট থেকে নিজেকে আলাদা করতে পারেন ।

  1. বিচ্ছিন্ন মোডে সমস্ত পরিষেবা শুরুdocker-compose up -d করতে ব্যবহার করুন ( -d) (আপনি কোনও বিচ্ছিন্ন মোডে কোনও লগ দেখতে পাবেন না)
  2. সমস্ত চলমান পরিষেবাদির লগগুলিতে নিজেকে সংযুক্তdocker-compose logs -f -t করতে ব্যবহার করুন , এর অর্থ হল আপনি লগ আউটপুট অনুসরণ করেন এবং বিকল্পটি আপনাকে টাইমস্ট্যাম্প দেয় ( ডকারের রেফারেন্স দেখুন )-f-t
  3. আপনার চলমান ধারকগুলি বন্ধ না করে লগ আউটপুট থেকে নিজেকে আলাদা করতে Ctrl + zবা ব্যবহার Ctrl + cকরতে পারেন

আপনি যদি কোনও একক ধারকের লগগুলিতে আগ্রহী হন তবে আপনি dockerপরিবর্তে কীওয়ার্ডটি ব্যবহার করতে পারেন :

  1. ব্যবহার docker logs -t -f <name-of-service>

আউটপুট সংরক্ষণ করুন

কোনও ফাইলের আউটপুট সংরক্ষণ করতে আপনি আপনার লগ কমান্ডের সাথে নিম্নলিখিতটি যুক্ত করুন:

  1. docker-compose logs -f -t >> myDockerCompose.log

7
আমি জানি না কেন এটি গৃহীত উত্তর। প্রশ্নটি ছিল ডকার-রচনা রান সম্পর্কে এবং আপনি -আরএম দিয়ে চালানোর জন্য অনেক সময় তাই কোনও লগ নেই। আমি এটি চালাচ্ছি বলে শেল স্ক্রিপ্টের আউটপুট দেখতে চাই।
জেমস ওব্রায়ান

4
যদিও এটি দরকারী তথ্য, তবে এটি প্রশ্নের উত্তর নয়। @ জেমস ও ব্রায়ান যেমন বলেছিলেন, প্রশ্নটি docker-compose runসেই পরিষেবাগুলির সম্পর্কে এবং তাদের সংযুক্তি সম্পর্কিত, যাদের তালিকাভুক্ত পরিষেবাদির অনন্য নাম রয়েছেdocker.compose.yml
তেত্রদেব

20

আপনি যদি আপনার টার্মিনালের সমস্ত পরিষেবা থেকে আউটপুট লগ দেখতে চান ।

docker-compose logs -t -f --tail <no of lines> 

উদাহরণস্বরূপ: বলুন যে আপনি সমস্ত পরিষেবা থেকে শেষ 5 লাইন আউটপুট লগ করতে চান

docker-compose logs -t -f --tail 5

যদি আপনি নির্দিষ্ট পরিষেবাদি থেকে আউটপুট লগ করতে চান তবে নীচের মত এটি করা যেতে পারে:

docker-compose logs -t -f --tail <no of lines> <name-of-service1> <name-of-service2> ... <name-of-service N>

ব্যবহার:

যেমন বলুন আপনার এপিআই এবং পোর্টাল পরিষেবা রয়েছে তবে আপনি নীচের মতো কিছু করতে পারেন:

docker-compose logs -t -f --tail 5 portal api

যেখানে 5 উভয় লগ থেকে সর্বশেষ 5 লাইন উপস্থাপন করে।

রেফ: https://docs.docker.com/v17.09/engine/admin/logging/view_container_logs/


5
  1. বিযুক্ত মোডে ধারকগুলি শুরু করতে কমান্ডটি ব্যবহার করুন: docker-compose up -d
  2. পাত্রে ব্যবহার দেখতে: docker ps
  3. একটি ধারক জন্য লগ দেখতে: docker logs <containerid>

1

দুর্ভাগ্যক্রমে আমাদের docker-compose logsথেকে আলাদাভাবে চালানো দরকার docker-compose run। এটি নির্ভরযোগ্যভাবে কাজ করতে আমাদের docker-compose runপ্রস্থান স্থিতি দমন করতে হবে এবং তারপরে লগটি পুনর্নির্দেশ করতে হবে এবং সঠিক স্থিতি দিয়ে প্রস্থান করতে হবে।

#!/bin/bash
set -euo pipefail
docker-compose run app | tee app.log || failed=yes
docker-compose logs --no-color > docker-compose.log
[[ -z "${failed:-}" ]] || exit 1
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.