কীভাবে ডকার পাত্রে বেরিয়ে এসেছেন তা কীভাবে চালিয়ে যেতে পারেন


262

বিবেচনা:

docker run -it centos /bin/bash

আমি টিপলাম CtrlD এটি থেকে প্রস্থান করতে + টিপলাম।

আমি এই ধারকটি চালিয়ে যেতে চাই, তবে আমি পেয়েছি যে আমি পারছি না।

একমাত্র পদ্ধতি

docker commit `docker ps -q -l` my_image
docker run -it my_image /bin/bash

আমি কি সঠিক? এর চেয়ে ভাল পদ্ধতি আর কি আছে? (আমি ডকার ব্যবহার করছি 0.8.0।)


1
আপনি কি ধারকটির কাছে কোনও নাম নির্ধারণ করার চেষ্টা করেছেন, এবং নামটি এটি নিয়ন্ত্রণ করতে ব্যবহার করেছেন? যাইহোক, "এটি প্রস্থান করুন" দ্বারা, আপনি এটি থেকে বিচ্ছিন্নতা বোঝাতে চান, তাই না?
এরিক প্লাটোন

12
ডকার হ'ল প্রোগ্রামিংয়ের একটি সরঞ্জাম, কমপক্ষে আমি এটি ব্যবহার করি। যদি সংখ্যাগরিষ্ঠ মতানৈক্য হয়, তবে কেউ ডোকরকে জিজ্ঞাসা করার জায়গা হিসাবে স্ট্যাকওভারফ্লোকে নির্দেশ না করার কথা বলবেন। আমি নিশ্চিত যে এটিই প্রথম "ডিভোপস" -র মতো প্রশ্ন নয় যা এখানে বা সুপার ব্যবহারকারী হিসাবে যেতে পারে।
টেড এম ইয়ং

5
ডকার একটি বিকাশকারী সরঞ্জাম। এটি ইতিমধ্যে এখানে একটি 'ডকার' ট্যাগ। সুতরাং, আমি স্ট্যাকওভারফ্লোতে জিজ্ঞাসা করা ভাল বলে মনে করি। আমি এটি এমন চিত্র তৈরি করতে ব্যবহার করি যা পরিষ্কার পরিবেশ থেকে তৈরি করা প্রয়োজন।
ড্যানিয়েল ওয়াইসি লিন

6
আমি আশা করি যারা এই বিষয়টিকে "অফ-টপিক" হিসাবে ট্যাগ করেছেন তারা কেন ব্যাখ্যা করবেন!
jpetazzo

2
এই প্রশ্নটিকে অফ-টপিক না করে সমর্থন করার জন্য: meta.stackoverflow.com/q/276579/210336 এবং meta.stackoverflow.com/q/271279/210336
ম্যাথিজ ওয়েসেলস

উত্তর:


290

কোনও বিদ্যমান পাত্রে এটি বেরোনোর ​​পরে পুনরায় চালু করতে পারেন এবং আপনার পরিবর্তনগুলি এখনও আছে।

docker start  `docker ps -q -l` # restart it in the background
docker attach `docker ps -q -l` # reattach the terminal & stdin

3
এক লাইন হিসাবে সংক্ষিপ্ত: docker start `docker ps -q -l` && docker attach `docker ps -q -l`
ড্যানিয়েল ওয়াইসি লিন

7
এক লাইন হিসেবে সংক্ষিপ্ত করার জন্য: docker start -i $(docker ps -q -l)। ;-) নামকরণটি কোন ধারকটি নির্বাচিত তা আরও ভাল নিয়ন্ত্রণ করতে সহায়তা করে। -lশেষটি পান, ঠিক আছে ...
এরিক প্লাটন

103
লিনাক্সে নতুন যারা, তাদের জন্য `docker ps -q -l`বিট একটি সম্প্রসারণ। এটি তৈরি করা সর্বশেষ (-l) ডকার পাত্রে আইডি দিয়ে প্রতিস্থাপন করা হবে। -q কেবলমাত্র অন্যান্য তথ্য (আইডির বিছানাগুলি) দমন করে সাধারণত আউটপুট দ্বারা `docker ps`। ---- দ্রষ্টব্য: ব্যাকটিক কোনও উদ্ধৃতি চিহ্ন নয়, এটির একটি বিশেষ অর্থ রয়েছে। ব্যাকটিক্সের মধ্যে আপনি টাইপ করা সমস্ত কিছুই প্রধান কমান্ডের আগে শেল দ্বারা মূল্যায়ন (সম্পাদিত) করা হবে - unix.stackexchange.com/questions/27428/…
bnieland

1
আমি ধারকটিকে এমন অবস্থায় ডেকে আছি Created...যেখান থেকে এটি শুরু করা যায় না docker start ...। তবে এটি ব্যবহার করে পুনরায় আরম্ভ করা যেতে পারেdocker restart ...
ভোল্টায়ার

2
দ্রষ্টব্য: -lকেবলমাত্র "সর্বশেষ" ডকারটি পান। আপনি যদি আমার মতো হন এবং docker ps -aআপনাকে আরম্ভ করার প্রয়োজন একাধিক জিনিস দেখায় তবে উপরের কমান্ডটি পরিবর্তন করে আপনি সেগুলির "সমস্ত" (-এ) পুনরায় চালু করতে পারেন docker start `docker ps -q -a`-qকেবল এটিকে "শান্ত" করে তোলে (আউটপুট লগিং নয়)।
রক লি

148
docker start -a -i `docker ps -q -l`

ব্যাখ্যা:

docker startএকটি ধারক শুরু করুন (নাম বা আইডি প্রয়োজন)
-aধারক
-iইন্টারেক্টিভ মোডের সাথে সংযুক্ত করুন
docker psতালিকা ধারকগুলি
-qকেবলমাত্র ধারক আইডিগুলির
-lতালিকা তৈরি করে কেবল সর্বশেষ তৈরি পাত্রে


ডকার পিএস-কি-এল, এটি সর্বশেষ তৈরির একটি ধারক আইডি দেয় যদিও এটি শুরু অবস্থায় থাকে।
ধর্মং

ধারককে তথাকথিত "সংযুক্তি" কী? "সংযুক্তি"?
স্কাইটি ট্রি

49

ব্যবহার করুন:

docker start $(docker ps -a -q --filter "status=exited")

এটি সমস্ত পাত্রে যা প্রস্থানিত অবস্থায় রয়েছে তা শুরু করবে।

docker exec -it <container-id> /bin/bash

এটি নির্দিষ্ট ধারকটির সাথে সংযুক্ত হবে।


2
আমি খুঁজে পেলাম যে এটিই আমার পক্ষে কাজ করেছিল .. সেই গুরুত্বপূর্ণ দ্বিতীয় লাইনের কারণে। docker exec -it <container id> /bin/bash(বা কেবল বাশ)
বারলপ

এটি আমার পক্ষে কাজ করেছিল, তবে আমার দুটি পাত্রে থাকাকালীন আমি এটি চালানোর জন্য দুটিবার চেষ্টা করেছি। সুতরাং যদি প্রথমটি শুরু হয় এবং দ্বিতীয়টি একটি ত্রুটি পায়। আবার একই কমান্ডটি আবার আঘাত করুন এবং এটি পরবর্তী পাত্রে শুরু করা উচিত।
Andrija জে ফোরকিডনি

20

আপনি যদি এটি একাধিক, মনে রাখা সহজ কমান্ডগুলিতে করতে চান:

  1. পাত্রে তালিকা বন্ধ করুন:

docker ps -a

  1. আপনি যে ধারকটি সংযুক্ত করতে চান তার নাম বা ধারক আইডিটি অনুলিপি করুন এবং ধারকটি দিয়ে শুরু করুন:

docker start -i <name/id>

-iপতাকা Docker বলে ধারক এর stdin সংযুক্ত করা হয়।

যদি সংযোগ স্থাপনের জন্য ধারকটি একটি ইন্টারেক্টিভ শেল দিয়ে শুরু না করা হয়, তবে শেল চালানোর জন্য আপনাকে এটি করতে হবে:

docker start <name/id>
docker exec -it <name/id> /bin/sh

/bin/shশেল সাধারণত আলপাইন ভিত্তিক ইমেজ সঙ্গে পাওয়া যায়।


আন্ডাররেটেড উত্তর, এটি আমাকে এই প্রশ্নের "উত্তর" এর চেয়ে যে সহজ ধারনাটি খুঁজছিল তা সন্ধান করতে সহায়তা করেছে।
নিকোলাস ল্যাব্রেককে

3
Error response from daemon: Container <id> is not running
সেরিন

14

আপনি যদি একটি পরিচিত নাম সহ ঠিক একটি ডকার ধারক চালিয়ে যেতে চান:

docker start  `docker ps -a -q --filter "name=elas"`

1
ধন্যবাদ @ নেলসন, বিশেষ ডকার শুরু করার জন্য এটি আমার পক্ষে খুব সহায়ক
SACHIN CHAVAN

এই ক্ষেত্রে আপনি কেবল চালাতে পারেন docker start <name>যেখানে <name> আপনার ধারকটির নাম। কমপক্ষে ডকার ভি 19.03.8 এর সাথে
ডন ফুমারে

13

এই পদক্ষেপগুলি অনুসরণ করুন:

  1. কমান্ডের নীচে রান করুন যে সমস্ত ধারক পরিষেবা উভয়ই চালু এবং বন্ধ রয়েছে তা দেখতে see ধারকটি -aপাশাপাশি বন্ধ হয়ে যায় তা দেখার জন্য বিকল্প দেওয়া হয়

    docker ps -a
    
  2. তারপরে ডকের কনটেইনারটি শুরু করুন container_idবা কোনও ধারক ট্যাগের নাম দ্বারা

    docker start <CONTAINER_ID> or <NAMES>
    

    এখানে চিত্র বর্ণনা লিখুন

    উপরের ছবিটি থেকে বলুন, ধারক আইডি 4b161b302337
    সুতরাং চালানোর আদেশটি

    docker start 4b161b302337
    
  3. কনটেইনারটি চলছে কিনা তা যাচাই করতে পারবেন

    docker ps
    

9

আপনার যদি নামের একটি ধারক থাকে তবে এটি চালিয়ে শুরু করা যেতে পারে

docker container start container_name

যেখানে ধারক_ নাম কনটেইনারটির নাম যা ধারক তৈরি করার সময় অবশ্যই দেওয়া উচিত। ধারকটির নাম না রাখলে আপনি container_nameধারক আইডি দিয়ে প্রতিস্থাপন করতে পারেন । ধারক আইডি চালিয়ে পাওয়া যাবে:

docker ps -a

5

এই কমান্ডগুলি কোনও ধারক (কেবলমাত্র শেষ প্রস্থানের নয়) এর জন্য কাজ করবে। আপনার সিস্টেমটি পুনরায় বুট করার পরেও এই উপায়টি কাজ করবে। এটি করতে, এই আদেশগুলি "ধারক আইডি" ব্যবহার করবে।

পদক্ষেপ:

  1. এই কমান্ডটি ব্যবহার করে সমস্ত ডকারের তালিকা তৈরি করুন এবং আপনি যে ধারকটি পুনরায় আরম্ভ করতে চান তার ধারক আইডিটি নোট করুন: docker ps -a

  2. ধারক আইডি ব্যবহার করে আপনার ধারকটি শুরু করুন: docker start <container_id>

  3. আপনার ধারক সংযুক্ত করুন এবং চালান: docker attach <container_id>

দ্রষ্টব্য: লিনাক্স উপর কাজ করে


1

নামে

sudo docker start bob_the_container

বা আইডি দ্বারা

sudo docker start aa3f365f0f4e

এটি বন্ধ হওয়া ধারকটি পুনরায় আরম্ভ করে, ধারকটির এসটিডিআইএন সংযুক্ত করতে -i ব্যবহার করুন বা -i এর পরিবর্তে আপনি ধারক সেশনে সংযুক্ত করতে পারেন (আপনি যদি এটি চালিয়ে যান)

sudo docker attach bob_the_container

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