ডকার রান-এই পতাকাটি কী?


115

আমি ডকার সহ কিছু জটিল জিনিস করছি, তবে ফলস্বরূপ আমি -itপতাকাটির অর্থ কী তা জানি না । সম্প্রতি আমি docker runকমান্ডের কিছু উদাহরণ পেয়েছি যা আমাকে কিছুটা বিভ্রান্ত করেছে।

docker run -itd ubuntu:xenial /bin/bash 

আমার প্রশ্নটি -itএখানে পতাকা লিখতে বুদ্ধিমান কি , যদি তাড়াতাড়ি চলার সময় ধারক থাকে containerbin/bash

ডকুমেন্টেশনে আমাদের একটি উদাহরণ রয়েছে

docker run --name test -it debian

ব্যাখ্যা সহ

-আইটি ডকারকে ধারকটির স্টিডিনের সাথে সংযুক্ত একটি সিডো-টিটিওয়াই বরাদ্দের নির্দেশ দেয়; ধারক মধ্যে একটি ইন্টারেক্টিভ বাশ শেল তৈরি।

এবং সহায়তা পৃষ্ঠা থেকে -t পতাকাটির ব্যাখ্যা

-টি, - ছদ্ম-টিটিওয়াই বরাদ্দ করুন

যদি আমি এই সময় পতাকা মুছে ফেলতে পারি

docker run -d ubuntu:xenial /bin/bash

আমার সদ্য নির্মিত পাত্রে এতটা বাঁচে না

ভিতরে docker ps -a

এটি প্রস্থান হিসাবে মনোনীত করা হয়

দুঃখিত, যদি আমার প্রশ্নটি বেশ বোকা, আমি ইন্টারনেটে ব্যাখ্যা খুঁজে পাই না (আমার কাছে এই বিষয়ে গুরুত্বপূর্ণ ভুল বোঝাবুঝি আছে)।


যদি /bin/bashস্টিডিনে কোনও সামগ্রী উপলব্ধ না থাকে তবে এটি চালানোর কোনও আদেশ নেই এবং ব্যবহারকারীর প্রম্পট করার কোনও উপায় নেই, তাই এটি প্রস্থান করে। এটি 100% স্বাভাবিক এবং প্রত্যাশিত আচরণ।
চার্লস ডাফি

উত্তর:


102

-it--interactive + --ttyআপনি যখন docker runএই কমান্ডটি সহকারে সংক্ষিপ্ত হন .. এটি আপনাকে সরাসরি ধারকটির ভিতরে নিয়ে যায়, যেখানে -dসংক্ষিপ্ত --detachযার অর্থ আপনি কেবল ধারকটি চালান এবং তারপরে এটি বিচ্ছিন্ন করুন যাতে মূলত আপনি ব্যাকগ্রাউন্ডে ধারক চালান .. সম্পাদনা করুন: তাই আপনি যদি -itdএটির সাহায্যে ডকার কন্টেইনারটি চালান তবে -itবিকল্পগুলি চালিত হবে এবং আপনাকে ধারক থেকে বিচ্ছিন্ন করবে, সুতরাং আপনার ধারকটি এখনও কোনও ডিফল্ট অ্যাপ্লিকেশন ছাড়াই ব্যাকগ্রাউন্ডে চলছে ..


এটি সঠিক উত্তর নয়, কারণ আমার ধারকটি বিনা-ইচ্ছায় বিকল্পটি চালানোর পরে বন্ধ হয়ে যায়।
অ্যালেক্স

4
এর অর্থ আপনার পাত্রে কোনও ত্রুটি রয়েছে .. সুতরাং আপনার ধারকটি আরম্ভ করতে ব্যর্থ হয়েছে ... অথবা এটির CMDডিফল্টরূপে কোনও আদেশ নেই, সুতরাং এটি কোনও অ্যাপ্লিকেশন ডিফল্টরূপে চালায় নি। .সারণে আপনি যদি এটি ব্যাকগ্রাউন্ডে চালনা করেন তবে তা অবিলম্বে বেরিয়ে আসবে কারণ এতে করার কোনও কাজ ছিল না। ।
Fendi jatmiko

@ অ্যালেক্স, আপনার পাত্রে থাকা প্রোগ্রামটি যদি স্টিডিন বন্ধ হওয়ার পরে প্রস্থান হয় তবে আপনার উত্তর আছে (কেন এটি চালানো হবে না -i)। একইভাবে, যদি এটি কমান্ডগুলি চালায় যে কোনও টিটিওয়াই আছে কিনা তার ভিত্তিতে আলাদাভাবে আচরণ করে, আপনি উপস্থিতির উপর নির্ভর করে স্বতন্ত্র আচরণ পেতে পারেন -t
চার্লস ডাফি

@ অ্যালেক্স, ... এবং স্পষ্টতই, /bin/bash </dev/nullআপনি যদি ডকার ছাড়াই চালনা করেন তবে তাৎক্ষণিকভাবেও বেরিয়ে আসবে। যে দৌড় শুরু হয় তার অনুলিপি docker runব্যতীত দৌড়ানো -iএকই কাজ করছে bash। (ছাড়া -t, এটিতে স্টিন রয়েছে তবে টিটিওয়াই নয়, সুতরাং এটি নিজেকে একটি ইন্টারেক্টিভ শেল হিসাবে সনাক্ত করে না, তাই আপনি আচরণের কিছুটা আলাদা সেট পান)।
চার্লস ডাফি

4
@ অ্যাডমিরাল অ্যাডামা, রঙ ইস্যুটিকে কী ঠিক করে দেয় তা হ'ল-টি বিকল্প। রঙিন টোকেনগুলি বোঝার জন্য টিটিওয়াই দরকার।
ক্রোয়েজ

44

docker run -it ubuntu:xenial /bin/bashইন্টারেক্টিভ মোডে কনটেইনারটি শুরু করে (তাই -itপতাকা) যা আপনাকে ধারকটির সাথে ইন্টারঅ্যাক্ট করার অনুমতি দেয় /bin/bash। তার মানে এখন আপনি থাকবে bashঅধিবেশন ভিতরে ধারক যাতে আপনি করতে পারেন, ls, mkdir, অথবা ধারক ভিতরে কোন ব্যাশ কমান্ড না।

এখানে মূল কথাটি "ইন্টারেক্টিভ" শব্দটি। আপনি যদি পতাকাটি বাদ দেন, ধারকটি এখনও কার্যকর করে /bin/bashতবে সঙ্গে সঙ্গে প্রস্থান করে। পতাকা সহ, ধারক কার্যকর করে /bin/bashতারপরে ধৈর্য ধরে আপনার ইনপুটটির জন্য অপেক্ষা করে।


4
তার জন্য আমার তখন -t পতাকা ব্যবহার করা দরকার? docker run -i ubuntu:xenial /bin/bash
অ্যালেক্স

4
-t: সিউডো টিটি, বা "সিউডো টার্মিনাল"। টার্মিনাল ছাড়া আপনি ধারকটিতে ইনপুট পাঠাতে পারবেন না।
dvnguyen

docker run -it ubuntu:xenial উত্তরের জন্য ধন্যবাদ, তবে আমি খুব কম থেকেই এই কমান্ডটি দিয়ে একটি টার্মিনাল সেশন করব (তার জন্য আমাকে তখন বিন / বাশ চালাতে হবে)। এটি একটি টার্মিনাল
অ্যালেক্স

4
তুমি ঠিক. আমি আমার কথা ফিরে নেব। -tট্যাগ ব্যতীত কোনও এখনও ধারকটির সাথে ইন্টারঅ্যাক্ট করতে পারে তবে এটির সাথে আপনার আরও ভাল, আরও বৈশিষ্ট্যযুক্ত টার্মিনাল থাকবে। আপনি পার্থক্যটি দেখতে -iএবং সাথে চালাতে পারেন -it
ডিভিএনগুয়েন

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