আমি নিশ্চিত না যে আমি ইতিমধ্যে সেমিডিডি: ডকার লগইন ব্যবহার করে সেমিডি লাইনে একটি ডকার রেজিস্ট্রিতে লগ ইন করেছি কিনা sure আপনি চাপ দেওয়ার চেষ্টা না করে আপনি কীভাবে পরীক্ষা করতে বা দেখতে পারবেন যে আপনি লগ ইন করেছেন কিনা?
আমি নিশ্চিত না যে আমি ইতিমধ্যে সেমিডিডি: ডকার লগইন ব্যবহার করে সেমিডি লাইনে একটি ডকার রেজিস্ট্রিতে লগ ইন করেছি কিনা sure আপনি চাপ দেওয়ার চেষ্টা না করে আপনি কীভাবে পরীক্ষা করতে বা দেখতে পারবেন যে আপনি লগ ইন করেছেন কিনা?
উত্তর:
2020 সম্পাদনা করুন
( বন্ধ ) গিথুব ইস্যুটির দিকে ফিরে উল্লেখ করা, যেখানে এটি নির্দেশ করা হয়েছে, কোনও আসল অধিবেশন বা রাষ্ট্র নেই;
ডকার লগইন আসলে কোনও ধরণের অবিচ্ছিন্ন সেশন তৈরি করে না, এটি কেবলমাত্র ডিস্কে ব্যবহারকারীর শংসাপত্রগুলি সংরক্ষণ করে রাখে যাতে প্রমাণীকরণের প্রয়োজন হলে এটি লগইন করতে তাদের পড়তে পারে
অন্যরা যেমন উল্লেখ করেছে, আপনি সফলভাবে লগইন করার পরে ফাইলটিতে একটি authsএন্ট্রি / নোড যুক্ত হয় ~/.docker/config.json(এটি বেসরকারী রেজিস্ট্রিগুলির জন্যও কাজ করে )
{
"auths": {
"https://index.docker.io/v1/": {}
},
...
লগ আউট করার পরে, এই এন্ট্রিটি তারপর সরানো হবে:
$ docker logout
Removing login credentials for https://index.docker.io/v1/
এর config.jsonপরে ডকারের সামগ্রী :
{
"auths": {},
...
আপনার লগইন স্থিতি পরীক্ষা করতে এই স্ক্রিপ্টটি আপনার স্ক্রিপ্ট বা কোড দ্বারা বিশ্লেষণ করা যাবে।
আপনি ডকারে লগইন করতে পারেন docker login <repository>
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If
you don't have a Docker ID, head over to https://hub.docker.com to
create one.
Username:
আপনি যদি ইতিমধ্যে লগইন হয়ে থাকেন তবে প্রম্পটটি দেখতে এমন হবে:
$ docker login
Login with your Docker ID to push and pull images from Docker Hub. If
you don't have a Docker ID, head over to https://hub.docker.com to
create one.
Username (myusername): # <-- "myusername"
এর মূল ব্যাখ্যার জন্য ~/.docker/config.json, প্রশ্নটি পরীক্ষা করুন : আমি কোনও প্রাইভেট ডকার রেজিস্ট্রিতে লগইন করেছি কিনা তা কীভাবে বলতে পারি
~/.docker/config.json।
docker infoএমনকি index.docker.io এর জন্য দৃশ্যত অবিশ্বাস্য । বর্তমানে ঠিক আছে লগ ইন এবং না শুধুমাত্র Registryএন্ট্রি দেখুন Username।
আমি এই চেকের জন্য নিম্নলিখিত দুটি উপায়ের একটি ব্যবহার করি:
আপনি যদি "private.registry.com" এ লগ ইন হয়ে থাকেন তবে নীচের মত একইটির জন্য আপনি একটি এন্ট্রি দেখতে পাবেন ~/.docker/config.json:
"auths": {
"private.registry.com": {
"auth": "gibberishgibberishgibberishgibberishgibberishgibberish"
}
}
আপনি যদি বেসরকারী.গ্রিস্ট্রি.কম.এর সাথে ইতিমধ্যে একটি সক্রিয় সেশন রেখেছেন তা দেখার চেষ্টা করছেন, আবার লগইন করার চেষ্টা করুন:
bash$ docker login private.registry.com
Username (logged-in-user):
যদি আপনি উপরের মতো আউটপুট পান তবে এর অর্থ logged-in-userইতিমধ্যে একটি সক্রিয় সেশন ছিল private.registry.com। পরিবর্তে যদি আপনাকে কেবল ব্যবহারকারী নামটির জন্য অনুরোধ করা হয় তবে এটি নির্দেশ করে যে কোনও সক্রিয় সেশন নেই।
আপনি লগ ইন করেছেন এবং ব্যবহারকারীর রেজিস্ট্রিটি ব্যবহারের জন্য নীচের কমান্ডটি করতে পারেন:
docker system info | grep -E 'Username|Registry'
এখানে এতক্ষণের উত্তরগুলি এতটা কার্যকর নয়:
docker info আর এই তথ্য সরবরাহ করে নাdocker logout একটি বড় অসুবিধা - আপনি ইতিমধ্যে শংসাপত্রগুলি না জানলে এবং সহজেই পুনরায় লগইন করতে না পারলেdocker login প্রতিক্রিয়াটি বেশ অবিশ্বাস্য মনে হয় এবং প্রোগ্রাম দ্বারা পার্স করা এত সহজ নয়আমার সমাধান যা আমার পক্ষে কাজ করেছে তা @ নুবুন্টুর মন্তব্যে তৈরি করে : আমি বুঝতে পেরেছিলাম যে আমি যে চিত্রটি টানতে চাইছি তা যদি আমি ইতিমধ্যে জানতাম তবে ব্যবহারকারী ইতিমধ্যে লগ ইন করেছেন কিনা তা আমি নিশ্চিত নই, আমি এটি করতে পারি:
try pulling target image
-> on failure:
try logging in
-> on failure: throw CannotLogInException
-> on success:
try pulling target image
-> on failure: throw CannotPullImageException
-> on success: (continue)
-> on success: (continue)
বেসরকারী নিবন্ধগুলির জন্য কিছুই দেখানো হয় না docker info। তবে লগআউট কমান্ড আপনাকে জানাবে যে আপনি লগ ইন করেছেন কিনা:
$ docker logout private.example.com
Not logged in to private.example.com
(যদিও এটি আপনাকে আবার লগ ইন করতে বাধ্য করবে))
ডকার ক্লাইপ শংসাপত্রের স্কিমটি আশ্চর্যজনকভাবে জটিল নয়, কেবল একবার দেখুন:
cat ~/.docker/config.json
{
"auths": {
"dockerregistry.myregistry.com": {},
"https://index.docker.io/v1/": {}
এটি উইন্ডোজে বিদ্যমান (ব্যবহার Get-Content ~\.docker\config.json) এবং আপনি শংসাপত্রের সরঞ্জামটিও ঘিরে ফেলতে পারেন যা ব্যবহারকারীর নামটিও তালিকাবদ্ধ করে ... এবং আমি মনে করি আপনি এমনকি পাসওয়ার্ডটি পুনরুদ্ধার করতে পারবেন
. "C:\Program Files\Docker\Docker\resources\bin\docker-credential-wincred.exe" list
{"https://index.docker.io/v1/":"kcd"}
docker-credential-wincred.exe <store|get|erase|list|version>যার অর্থ আপনি getনিজের পাসওয়ার্ডটি করতে পারেন
catওরফে ব্যবহার করছিলাম ... উভয়কে অন্তর্ভুক্ত করার জন্য আপডেট করা হয়েছে
কমপক্ষে "উইন্ডোজের জন্য ডকার" এ আপনি দেখতে পাবেন যে আপনি ইউআই-র মাধ্যমে ডকার হাবটিতে লগ ইন করেছেন কিনা। উইন্ডোজ বিজ্ঞপ্তি অঞ্চলে ডকার আইকনটিতে কেবল ডান ক্লিক করুন:

আপনি যদি একটি সাধারণ true/falseমান চান , আপনি এটিতে পাইপ করতে docker.jsonপারেন jq।
is_logged_in() {
cat ~/.docker/config.json | jq -r --arg url "${REPOSITORY_URL}" '.auths | has($url)'
}
if [[ "$(is_logged_in)" == "false" ]]; then
# do stuff, log in
fi
jqএকটি সঠিক প্রস্থান কোড ফিরে আসতে পারেন এবং তারপরে আপনার স্ট্রিং তুলনা করার দরকার নেই:is_logged_in() { jq -e --arg url ${ADDRESS} '.auths | has($url)' ~/.docker/config.json > /dev/null; }; if is_logged_in; then ...
নীচের মত কমান্ড ব্যবহার করুন:
docker info | grep 'name'
WARNING: No swap limit support
Username: <strong>jonasm2009</strong>
উইন্ডোজগুলিতে আপনি এই ফাইলটি দেখে লগইন "অনুমোদন" (লেখক) পরিদর্শন করতে পারেন: [USER_HOME_DIR]। ডকার \ config.json
উদাহরণ: সি: \ USERS \ YOUR_USERANME.docker \ config.json
উইন্ডোজ শংসাপত্রগুলির জন্য এটি দেখতে এর মতো কিছু দেখাবে
{
"auths": {
"HOST_NAME_HERE": {},
"https://index.docker.io/v1/": {}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/18.09.0 (windows)"
},
"credsStore": "wincred",
"stackOrchestrator": "swarm"
}
@ ক্রিশ্চিয়ান দ্বারা চিহ্নিত হিসাবে, প্রথমে অপারেশন চেষ্টা করার পরে প্রথমে প্রয়োজনে লগইন করা ভাল। সমস্যাটি হ'ল "যদি প্রয়োজন হয়" তবে মজবুতভাবে করা সুস্পষ্ট নয়। একটি পদ্ধতি হ'ল ডকার অপারেশনের স্ট্যাডারকে কিছু স্ট্রিং যা ট্রায়াল (ত্রুটি ও ত্রুটির দ্বারা) দ্বারা পরিচিত রয়েছে তার সাথে তুলনা করা। উদাহরণ স্বরূপ,
try "docker OPERATION"
if it failed:
capture the stderr of "docker OPERATION"
if it ends with "no basic auth credentials":
try docker login
else if it ends with "not found":
fatal error: image name/tag probably incorrect
else if it ends with <other stuff you care to trap>:
...
else:
fatal error: unknown cause
try docker OPERATION again
if this fails: you're SOL!