ধারকটি বের হয়ে গেলে আমি আমার ডেটা হারাতে চাই


394

ডকারের ইন্টারেক্টিভ টিউটোরিয়াল এবং প্রায়শই জিজ্ঞাসা করা সত্ত্বেও ধারকটি প্রস্থান করার সময় আমি আমার ডেটা হারাব।

আমি এখানে বর্ণিত হিসাবে ডকার ইনস্টল করেছি: http://docs.docker.io/en/latest/installation/ubuntulinux উবুন্টু 13.04 এ কোনও সমস্যা ছাড়াই।

প্রস্থান করার সময় এটি সমস্ত ডেটা হারাতে থাকে।

iman@test:~$ sudo docker version
Client version: 0.6.4 
Go version (client): go1.1.2 
Git commit (client): 2f74b1c 
Server version: 0.6.4 
Git commit (server): 2f74b1c 
Go version (server): go1.1.2 
Last stable version: 0.6.4 


iman@test:~$ sudo docker run ubuntu ping
2013/10/25 08:05:47 Unable to locate ping 
iman@test:~$ sudo docker run ubuntu apt-get install ping
Reading package lists... 
Building dependency tree... 
The following NEW packages will be installed: 
  iputils-ping 
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. 
Need to get 56.1 kB of archives. 
After this operation, 143 kB of additional disk space will be used. 
Get:1 http://archive.ubuntu.com/ubuntu/ precise/main iputils-ping amd64 3:20101006-1ubuntu1 [56.1 kB] 
debconf: delaying package configuration, since apt-utils is not installed 
Fetched 56.1 kB in 0s (195 kB/s) 
Selecting previously unselected package iputils-ping. 
(Reading database ... 7545 files and directories currently installed.) 
Unpacking iputils-ping (from .../iputils-ping_3%3a20101006-1ubuntu1_amd64.deb) ... 
Setting up iputils-ping (3:20101006-1ubuntu1) ... 
iman@test:~$ sudo docker run ubuntu ping
2013/10/25 08:06:11 Unable to locate ping 
iman@test:~$ sudo docker run ubuntu touch /home/test
iman@test:~$ sudo docker run ubuntu ls /home/test
ls: cannot access /home/test: No such file or directory 

আমি এটি একই ফলাফলের সাথে ইন্টারেক্টিভ সেশনগুলির সাথেও পরীক্ষা করেছি। আমি কি কিছু ভুলে গেছি?

সম্পাদনা করুন: নতুন ডকার ব্যবহারকারীদের জন্য গুরুত্বপূর্ণ

হিসাবে @ মোহাম্মদ-noureldin এবং অন্যদের বললেন, আসলে এই হল না একটি ধারক থেকে প্রস্থান । প্রতিবার এটি কেবল একটি নতুন ধারক তৈরি করে।


10
এটিকে " ধারক প্রস্থানকারী " বলা যায় না , আপনি কেবল একটি নতুন ধারক তৈরি করছেন, বহির্গমন শব্দটি ব্যবহার করে অনেক কিছু বিভ্রান্ত করতে পারে (এটির কারণে আমিও বিভ্রান্ত হয়েছিলাম)।
মোহাম্মদ নুরাল্ডিন

1
@ মোহাম্মদ নুরাল্ডিন, আপনি ঠিক বলেছেন, প্রস্থান করা সঠিক নয়, তবে আপনি, আমি এবং অন্যরা যা ভেবে দেখেছিলাম ঠিক তেমনটাই। সুতরাং এটি প্রশ্নে আরও ভাল শব্দ, আপনার সম্পাদনা প্রশ্নটিকে একটি উত্তর করে তোলে! নতুন সন্ধানকারীরা এখানে পাবেন না!
ইমান

ডকারের সাথে আমার প্রথম সূচনায়, আমি ভেবেছিলাম যে আপনার প্রশ্নের কারণেই, আমি দেখতে পাচ্ছি যে ঠিকানাটি কেবল ভুল R নতুন শিরোনামটি পর্যালোচনা করা হয়েছে এবং স্বীকৃত হয়েছে, আমি বুঝতে পারি না কেন কেউ কেন একটি ভুল শিরোনামের জন্য জোর দেওয়া উচিত, এটি আপনার অনুসন্ধান এবং আপনার স্বীকৃতি।
মোহাম্মদ নুরাল্ডিন

3
আমি @ মোহাম্মদনিউরল্ডিনের সাথে একমত নির্দিষ্ট শিরোনাম, উদাহরণ এবং স্বীকৃত উত্তরের সংমিশ্রণ ভবিষ্যতের পাঠক এবং বিশেষত নতুনদের বুঝতে সাহায্য করে না Docker। আমি শিরোনাম এবং মূল প্রশ্নটি রাখার প্রস্তাব করব, যেহেতু নতুনরা অবশ্যই এই জাতীয় কিছু অনুসন্ধান করবে। তবে, আপনি পোস্টটি লেখার সময় কেন আপনার ভুল ধারণাটি বর্ণনা করতে কিছু যুক্ত করবেন না। এটি বিষয়গুলি পরিষ্কার করতে সহায়তা করবে। এটি এখানে আমাদের সংস্কৃতি এসও ... তাই না? :-)
tgogos

2
আমার এই সমস্যাটি ছিল ... প্রতিবার আপনি যখন প্রস্থান করবেন তখন আপনার চালকটি এটি চালাবেন না এটি চালাবেন না ... একটি চিত্র আগুন চালান একটি নতুন ধারক তৈরি করুন এটি ডকারকে শুরু করতে সহায়তা করবে <ধারক আইডি> ডকার সংযুক্ত <ধারক আইডি>
ভাগ্যেমাহ

উত্তর:


399

আপনার ধারকটিতে পরিবর্তনগুলি করা দরকার এবং তারপরে এটি চালানো উচিত। এটা চেষ্টা কর:

sudo docker pull ubuntu

sudo docker run ubuntu apt-get install -y ping

তারপরে এই কমান্ডটি ব্যবহার করে ধারক আইডি পাবেন:

sudo docker ps -l

ধারকটিতে পরিবর্তনগুলি প্রতিশ্রুতিবদ্ধ:

sudo docker commit <container_id> iman/ping 

তারপরে ধারকটি চালান:

sudo docker run iman/ping ping www.google.com

এই কাজ করা উচিত.


9
সুতরাং ডেটা সংরক্ষণের জন্য আমার প্রতিটি রানের পরে কমিট ব্যবহার করা উচিত ।
ইমান

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

7
@ আমি কীভাবে পরিবর্তনগুলি চালিয়ে যেতে চাই? এখনও পর্যন্ত এটি দিয়ে আরও চিত্র তৈরি করে <none>। কীভাবে আমি বিদ্যমান চিত্রের উপরে প্রতিশ্রুতি যুক্ত করতে পারি?
মার্কোনি

62
ক্রমবর্ধমান পরিবর্তন করা "ডক ওয়ে" নয়। একটি ডকারফিল ব্যবহার করুন।
ব্যবহারকারী2105103

23
আপনি ধারক মধ্যে থেকে প্রতিশ্রুতিবদ্ধ হবে কিভাবে? নিম্নলিখিত দৃশ্যের বিষয়টি বিবেচনা করুন: 1) আমি ধারকটি এভাবে চালাচ্ছি: ডকার রান -আই-মাইমেজ / বিন / ব্যাশ 2) আমি কিছু পরিবর্তন করি 3) আমি ধারকটির মধ্যে থেকে কমিট করতে পারি না, তাই আমি যখন ধারকটি থেকে প্রস্থান করি তখন আমি আমার পূর্ববর্তী পরিবর্তনগুলি করার সুযোগ না করেই আমার সমস্ত ডেটা আলগা করে দেবে
কিজিকআপ

374

আপনি যখন docker runকোনও ধারক শুরু করতে ব্যবহার করেন , এটি আসলে আপনার নির্দিষ্ট করা ইমেজের উপর ভিত্তি করে একটি নতুন ধারক তৈরি করে।

এখানে অন্যান্য দরকারী উত্তরগুলির পাশাপাশি, নোট করুন যে কোনও বিদ্যমান ধারকটি বেরিয়ে যাওয়ার পরে এবং আপনার পরিবর্তনগুলি এখনও সেখানে রয়েছে তা পুনরায় চালু করতে পারেন।

docker start f357e2faab77 # restart it in the background
docker attach f357e2faab77 # reattach the terminal & stdin

88
docker psআপনাকে কেবল ডকার পাত্রে চালানো দেখায়। docker ps -aযেগুলি বেরিয়ে এসেছে - এবং আপনি চালিয়ে যেতে পারেন তাও আপনাকে দেখায়। আপনি যদি ভবিষ্যতে ব্যবহারের জন্য একটি স্ন্যাপশট তৈরি করতে চান তবে প্রতি রানের পরে একটি প্রতিশ্রুতিবদ্ধতা কেবলমাত্র প্রয়োজনীয়, অন্যথায় ধারক নিজেই আপনার ব্যবহার চালিয়ে যাবেন around
ব্যবহারকারী 1278519

2
দয়া করে প্রশ্ন করুন, তাই যদি আমি কোনও jenkinsসার্ভার ডকার ডাউনলোড করি এবং আমি এটি আমার সিআই হোস্টে চালিত করি এবং এটি আমার কিছু কাজ চালায় এবং ফলস্বরূপ জেনকিন্স সার্ভার কিছু লগ ডিস্কে লিখে রাখে। এখন যদি আমার সার্ভার (যা আমার ডকার হোস্ট করেছিল) আবার চালু হয়ে যায় এবং আমি আবার আমার জেনকিনস ডকার শুরু করি তবে এর অর্থ কি আমি সমস্ত লগ ফাইল হারিয়েছি? যদি তা হয় তবে আমি jenkinsসিআই-তে আমার জেনকিন্স ইনস্টলেশনটি সহজ করতে উদাহরণস্বরূপ কীভাবে ডকার ব্যবহার করতে পারি ?
জাস

2
@ জাস যদি আপনি একই ধারকটিতে লেগে থাকেন এবং নতুন তৈরি না করেন তবে কোনও সমস্যা নেই। আজকাল ডকারের পুনরায় চালু নীতি রয়েছে, তাই আপনি এটি পুনরায় চালু করতে মেশিন পুনরায় বুট করতে কনফিগার করতে পারেন। আমি আপনাকে জেনকিনগুলি বাইরে থেকে (ব্যাকআপ ইত্যাদি) অ্যাক্সেস করতে সক্ষম করার জন্য একটি ভলিউমে রাখার পরামর্শ দিচ্ছি।
জিসিস

7
একবার বেরোনোর ​​পরে ধারক থেকে ফাইলগুলি অনুলিপি করার একটি সহজ উপায়:docker cp $(docker ps -alq):/path/to/file .
জোশ হাবদাস

3
আপনি এটির নামে একটি ধারক শুরু এবং সংযুক্ত করতে পারেন। (উদা docker run -it --name my_debian debianএবং পরে docker start my_debian && docker attach my_debian)
জনি উইলার

127

ধারক তথ্য ধরে রাখার জন্য নিম্নলিখিত উপায় রয়েছে:

  1. ডকার ভলিউম

  2. ডকার কমিট

    ক) উবুন্টু চিত্র থেকে ধারক তৈরি করুন এবং ব্যাশ টার্মিনাল চালান।

       $ docker run -i -t ubuntu:14.04 /bin/bash
    

    খ) টার্মিনালের ভিতরে কার্ল ইনস্টল করুন

       # apt-get update
       # apt-get install curl
    

    গ) ধারক টার্মিনাল থেকে প্রস্থান করুন

       # exit
    

    d) নিম্নলিখিত কমান্ডটি প্রয়োগ করে আপনার ধারক আইডি একটি নোট নিন:

       $ docker ps -a
    

    e) নতুন চিত্র হিসাবে ধারক সংরক্ষণ করুন

       $ docker commit <container_id> new_image_name:tag_name(optional)
    

    চ) যাচাই করে নিন যে আপনি আপনার নতুন চিত্রটি ইনস্টল কার্ল দিয়ে দেখতে পারেন।

       $ docker images           
    
       $ docker run -it new_image_name:tag_name bash
          # which curl
            /usr/bin/curl
    

এটি exitআগে প্রয়োজন docker commit? ধন্যবাদ।
অভিষেক আনন্দ

2
@ অভিষেকআনন্দ এবং হ্যাঁ, কারণ docker runআপনি কমান্ডারে কন্টেইনারটিতে চালাচ্ছেন -iএবং -tবিকল্পগুলি এবং বিকল্পগুলির কারণে আপনি সেখানে রয়েছেন (টিটিওয়াইয়ের সাথে ইন্টারেক্টিভ)। যাইহোক, ডকারটি আপনার মেশিনে, ধারক বাহিরের বাইরে চলে যায়, সুতরাং অভ্যন্তর থেকে পাত্রে প্রয়োজনীয় পরিবর্তনগুলি করার পরে আপনার সিস্টেমের শেলটিতে ফিরে যেতে আপনার exit(বা Ctrl + D) ধারকটির শেলটি রাখতে হবে। এছাড়াও #এবং $উত্তরে নোট করুন , যা নির্দেশ করে বিভিন্ন শেল নির্দেশ করে।
এরিক

তাত্ক্ষণিক প্রশ্ন: যদি আমি প্রতিশ্রুতি না রাখি তবে আমি ডেটা হারিয়ে ফেলেছি। এটা পরিস্কার. তবে আমি যখন এনজিনেক্স কনফিগারেশন পরিবর্তন করি তখন কেন এটি আপডেট থাকে? (কমিট করার কোন প্রয়োজন) @Erik
, grep

@grep যদি আপনার একটি পরিষ্কার এবং পুনরুত্পাদনযোগ্য MWE থাকে তবে দয়া করে এই সম্পর্কে নতুন প্রশ্ন জিজ্ঞাসা করুন, যদি এই নির্দিষ্ট ব্যবহারের ক্ষেত্রে ইতিমধ্যে একটি না থাকে।
এরিক

3. docker stopদ্বারা অনুসরণ docker start
ক্যারিলোনেটর

59

আনফার্থ এর উত্তর ছাড়াও , ডকফেরফিল তৈরি করার পরামর্শ দেওয়া হয় ।

একটি খালি ডিরেক্টরিতে, নিম্নলিখিত বিষয়বস্তু সহ "ডকফেরফাইল" নামে একটি ফাইল তৈরি করুন

FROM ubuntu
RUN apt-get install ping
ENTRYPOINT ["ping"]

ডকফাইফাইল ব্যবহার করে একটি চিত্র তৈরি করুন । আসুন একটি ট্যাগ ব্যবহার করি যাতে আমাদের হেক্সাডেসিমাল চিত্রের নামটি মনে রাখার দরকার নেই।

$ docker build -t iman/ping .

এবং তারপরে একটি পাত্রে চিত্রটি চালান

$ docker run iman/ping stackoverflow.com

1
এটি একবারে ম্যানুয়ালি কখনও না করা হ'ল ডকারের বিন্দু। একটি ডকফায়াইল তৈরি করুন, প্রতিপন্ন করুন এবং ফলাফলটি চিত্র আপলোড করুন। টান ইমেজ এগিয়ে যাচ্ছে।
ব্র্যান্ডন বার্টেলসেন

11

আমি আপনার প্রশ্নের অনেক সহজ উত্তর পেয়েছি, নিম্নলিখিত দুটি কমান্ড চালান

sudo docker run -t -d ubuntu --name mycontainername /bin/bash
sudo docker ps -a

উপরের পিএস -a কমান্ড সমস্ত পাত্রে একটি তালিকা প্রদান করে। চিত্রটির নাম উল্লেখ করে এমন ধারকটির নাম নিন - 'উবুন্টু'। ডকার অটো কনটেইনারগুলির জন্য উদাহরণস্বরূপ নাম উত্পন্ন করে - 'lightlyxuyzx'এটি যদি আপনি - নাম বিকল্পটি ব্যবহার না করেন।

-T এবং -d বিকল্পগুলি গুরুত্বপূর্ণ, তৈরি পাত্রে পৃথক করা হয়েছে এবং -t বিকল্পের সাহায্যে নীচে দেওয়া হিসাবে পুনরায় সংযুক্ত করা যেতে পারে।

--Name বিকল্পের সাহায্যে আপনি আমার ধারকটিকে 'মাইকোনটেনারনাম' দিয়ে নিজের ধারকটির নাম রাখতে পারেন।

sudo docker exec -ti mycontainername bash

এবং উপরের এই কমান্ডটি আপনাকে ব্যাশ শেল সহ ধারকটিতে লগইন করতে সহায়তা করে। এই পয়েন্ট থেকে আপনি ধারকটিতে যে কোনও পরিবর্তন করেন তা স্বয়ংক্রিয়ভাবে ডকার দ্বারা সংরক্ষণ করা হয়। উদাহরণস্বরূপ - apt-get install curlধারকটির ভিতরে আপনি কোনও সমস্যা ছাড়াই ধারকটি প্রস্থান করতে পারবেন, ডকার অটো পরিবর্তনগুলি সংরক্ষণ করে।

পরবর্তী ব্যবহারে, আপনাকে যা করতে হবে তা হ'ল প্রতিবার এই ধারকটির সাথে কাজ করতে চাইলে এই দুটি কমান্ড চালান।

এই নীচের কমান্ডটি থামানো ধারকটি শুরু করবে:

sudo docker start mycontainername

sudo docker exec -ti mycontainername bash

নীচে দেওয়া বন্দর এবং একটি ভাগ করা স্থানের সাথে আরেকটি উদাহরণ:

docker run -t -d --name mycontainername -p 5000:5000 -v ~/PROJECTS/SPACE:/PROJECTSPACE 7efe2989e877 /bin/bash

আমার ক্ষেত্রে: 7efe2989e877 - এটি পূর্ববর্তী পাত্রে চলমান চিত্রের চিত্রকর্ম যা আমি ব্যবহার করে পেয়েছি

ডকার PS -a


4
উবার্টু 18.04-এ ডকার 18.09.2 এর সাথে এটি যেমনটি কাজ করে না। আমি যদি --nameচিত্রের নামের আগে এই বিকল্পটি রাখি এবং এটি কার্যকর হয়:docker run --name mycontainername -t -d ubuntu /bin/bash
স্টাফেন গৌরিচন

9

আপনি যদি নিজের ধারকটিতে ডেটা চালিয়ে যেতে চান তবে আপনি ডকার ভলিউমগুলি দেখতে চাইতে পারেন। পরিদর্শন https://docs.docker.com/engine/tutorials/dockervolumes/ । ডকার ডকুমেন্টেশন শুরু করার জন্য খুব ভাল জায়গা


3

আমার পরামর্শটি ডকার রচনা সহ ডকার পরিচালনা করার জন্য। আপনার প্রকল্পের জন্য সমস্ত ডকারের ধারকগুলি পরিচালনা করার সহজ উপায়, আপনি সংস্করণগুলিতে মানচিত্র তৈরি করতে পারেন এবং বিভিন্ন পাত্রে এক সাথে কাজ করার জন্য লিঙ্ক করতে পারেন।

ডকগুলি বুঝতে খুব সহজ, ডকারের ডক্সের চেয়ে ভাল।

ডকার-রচনা ডক্স

সেরা


3

জিজ্ঞাসিত প্রশ্নের উপরে সত্যিই দুর্দান্ত উত্তর রয়েছে। অন্য কোনও উত্তরের প্রয়োজন হতে পারে না তবে তবুও আমি এই বিষয়টিতে আমার ব্যক্তিগত মতামতটি সহজতম ভাষায় দিতে চাই।

ধারক ও চিত্র সম্পর্কে এখানে কিছু পয়েন্ট রয়েছে যা আমাদের উপসংহারে সহায়তা করবে:

  • একটি ডকার চিত্র হতে পারে :
    1. নির্মিত-থেকে-এ-প্রদত্ত-ধারক
    2. মুছে যাওয়া
    3. ব্যবহৃত তৈরি করার যোগ্য-কোনো নম্বরের অফ পাত্রে
  • একটি ডকার পাত্রে হতে পারে :
    1. নির্মিত-থেকে-একটি-চিত্র
    2. শুরু
    3. বন্ধ
    4. পুনরায় আরম্ভ
    5. মুছে যাওয়া
    6. ব্যবহৃত তৈরি করার যোগ্য-কোনো নম্বরের অফ ইমেজ
  • একটি ডকার রান কমান্ড এটি করে :
    1. একটি চিত্র ডাউনলোড করে বা ক্যাশেড চিত্র ব্যবহার করে
    2. এটির বাইরে একটি নতুন ধারক তৈরি করে
    3. পাত্রটি শুরু করে
  • যখন কোনও ডকফাইফাইল একটি চিত্র তৈরি করতে ব্যবহৃত হয় :
    1. এটি ইতিমধ্যে সুপরিচিত যে চিত্রটি শেষ পর্যন্ত ডকারের ধারক চালাতে ব্যবহৃত হবে।
    2. ডকার বিল্ড কমান্ড জারি করার পরে, ডকার-পর্দার আড়ালে একটি বেস-ফাইল-সিস্টেমের সাথে একটি চলমান ধারক তৈরি করে এবং বিকাশকারীদের প্রয়োজন অনুসারে সেই ধারকটি কনফিগার করতে ডকফায়াইলের অভ্যন্তরে পদক্ষেপগুলি অনুসরণ করে।
    3. কন্টেইনারটি ডকফাইফিলের স্প্যাকগুলি দিয়ে কনফিগার করার পরে, এটি একটি চিত্র হিসাবে প্রতিশ্রুতিবদ্ধ হবে।
    4. চিত্রটি রক ও রোল করার জন্য প্রস্তুত হয়!

উপসংহার :

আমরা দেখতে পাচ্ছি, একটি ডকারের ধারক ডকারের ইমেজের চেয়ে স্বতন্ত্র।

সেই ধারকটির অনন্য আইডি সরবরাহ করে একটি ধারক পুনরায় আরম্ভ করা যেতে পারে [docker ps --all আইডি পেতে ব্যবহার করুন ]

কোনও নতুন ডিরেক্টরি তৈরি করা, ফাইল তৈরি করা, সরঞ্জাম ইনস্টল করা ইত্যাদির মতো যে কোনও ক্রিয়াকলাপটি চলার সময় ধারকটির ভিতরে করা যেতে পারে। একবার ধারকটি বন্ধ হয়ে গেলে, এটি সমস্ত পরিবর্তন স্থির করে। ধারক থামানো এবং পুনরায় চালু করা কম্পিউটার সিস্টেমকে রিবুট করার মতো।

ইতিমধ্যে তৈরি করা ধারকটি সর্বদা পুনঃসূচনা করার জন্য উপলভ্য তবে আমরা যখন docker runকমান্ড জারি করি তখন একটি চিত্রের বাইরে একটি নতুন ধারক তৈরি হয় এবং তাই এটি একটি নতুন কম্পিউটার সিস্টেমের মতো like পুরানো ধারকটির ভিতরে করা পরিবর্তনগুলি - আমরা এখন বুঝতে পারি - এই নতুন ধারকটিতে উপলব্ধ নেই।

একটি চূড়ান্ত নোট :

আমি অনুমান করি যে এটি এখন সুস্পষ্টভাবে কেন ডেটা হারিয়ে গেছে বলে মনে হয় তবে এটি সর্বদা থাকে .. তবে অন্য একটি [পুরানো] ধারক মধ্যে। সুতরাং, পার্থক্য একটি ভাল নোট নিতে docker start& docker runকমান্ড & কখনো তাদের মধ্যে বিভ্রান্ত দেখায়।


1

একই সমস্যা (এবং কোনওভাবেই ডকফেরফিল এটি সমাধান করতে পারে না) আমাকে এই পৃষ্ঠায় নিয়ে আসে।

মঞ্চ 0: সকলের জন্য, ডকফেরফিল এটি সমাধান করতে পারে আশা করে: --dns এবং --dns- অনুসন্ধান ডকফেরফিল সমর্থনে উপস্থিত না হওয়া অবধি - ইন্ট্রানেট ভিত্তিক সংস্থানগুলিকে একীভূত করার কোনও উপায় নেই।

মঞ্চ 1: ডকফাইফাইল ব্যবহার করে চিত্র তৈরি করার পরে (ডকফেরিলটি বর্তমান ফোল্ডারে অবশ্যই হওয়া উচিত ), ডকার রান স্ক্রিপ্ট চালিয়ে ইন্ট্রানেট কি ভিত্তিতে স্থাপন করতে একটি চিত্র রয়েছে। উদাহরণ: docker run -d \ --dns=${DNSLOCAL} \ --dns=${DNSGLOBAL} \ --dns-search=intranet \ -t pack/bsp \ --name packbsp-cont \ bash -c " \ wget -r --no-parent http://intranet/intranet-content.tar.gz \ tar -xvf intranet-content.tar.gz \ sudo -u ${USERNAME} bash --norc"

দ্বিতীয় পর্যায়: ডিমন মোডে ডকার রান স্ক্রিপ্ট প্রয়োগ করে স্থানীয় ডিএনএস রেকর্ড সরবরাহ করে যা স্থানীয় স্টাফ ডাউনলোড এবং মোতায়েনের ক্ষমতা রাখে providing

গুরুত্বপূর্ণ পয়েন্ট: রান স্ক্রিপ্টটি /usr/bin/sudo -u ${USERNAME} bash --norcইনস্টলেশন স্ক্রিপ্টগুলি শেষ হওয়ার পরেও ধারক চালিয়ে যাওয়ার মতো কিছু দিয়ে শেষ করা উচিত ।

না , সম্পূর্ণ অটোমেশন পদার্থের জন্য ইন্টারেক্টিভ মোডে ধারক চালানো সম্ভব নয় কারণ এটি অভ্যন্তরীণ অভ্যন্তরে থাকবে সিটিআরএল-পি সিটিআরএল-কি টিপানো অবধি প্রম্পট কমান্ড দেবে ।

না , ইনস্টলেশন স্ক্রিপ্টের শেষে যদি ইন্টারঅ্যাক্টিং ব্যাশটি কার্যকর না করা হয় তবে সমস্ত ইনস্টলেশন ফলাফল হ্রাস করে স্ক্রিনটি কার্যকর করার পরে ধারকটি অবিলম্বে সমাপ্ত হবে।

পর্যায় 3: পাত্রে এখনও পটভূমিতে চলছে তবে ধারক এখনও ইনস্টলেশন প্রক্রিয়া শেষ হয়েছে কিনা তা স্পষ্ট নয়। সম্পাদন পদ্ধতি শেষ করতে নিম্নলিখিত ব্লক ব্যবহার করে: while ! docker container top ${CONTNAME} | grep "00[[:space:]]\{12\}bash \--norc" - do echo "." sleep 5 done স্ক্রিপ্টটি ইনস্টলেশন শেষ হলেই আরও এগিয়ে যাবে। এবং এটি কল করার সঠিক মুহূর্তটি: প্রতিশ্রুতিবদ্ধ , বর্তমান ধারক আইডি সরবরাহের পাশাপাশি গন্তব্য চিত্রের নাম সরবরাহ করুন (এটি বিল্ড / রান পদ্ধতিতে একই রকম হতে পারে তবে স্থানীয় ইনস্টলেশন উদ্দেশ্য ট্যাগের সাথে সংযুক্ত। উদাহরণ:। docker commit containerID pack/bsp:toolchainedএই লিঙ্কটি দেখুন কিভাবে সঠিক ধারক আইডি পাবেন

পর্যায় 4: কনটেইনারটি স্থানীয় ইনস্টলগুলির সাথে আপডেট করা হয়েছে পাশাপাশি এটি নতুন বরাদ্দকৃত চিত্রে প্রতিশ্রুতিবদ্ধ হয়েছে (যার উদ্দেশ্যযুক্ত ট্যাগ যুক্ত করা হয়েছে)। ধারক চালানো বন্ধ করা এখন নিরাপদ। উদাহরণ:docker stop packbsp-cont

পর্যায় 5: যে কোনও মুহুর্তে স্থানীয় ইনস্টলযুক্ত ধারকটি চালাতে হবে, এটি পূর্বের সংরক্ষণিত চিত্রের সাথে শুরু করুন। উদাহরণ:docker run -d -t pack/bsp:toolchained


1

এখানে একটি উজ্জ্বল উত্তর কীভাবে ব্যবহারকারীর কেজি থেকে বেরিয়ে আসা ডকারকে চালিয়ে যেতে পারেন

docker start $(docker ps -a -q --filter "status=exited")
(or in this case just docker start $(docker ps -ql) 'cos you don't want to start all of them)

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

যে দ্বিতীয় লাইন অত্যন্ত গুরুত্বপূর্ণ। সুতরাং এক্সিকে রানের জায়গায় ব্যবহার করা হয়, এবং কোনও চিত্রের জন্য নয় তবে একটি পাত্রে ব্যবহৃত হয়। এবং আপনি এটি কন্টেইনারটি শুরু করার পরে করবেন।


0

উত্তরের কোনওটিই এই নকশা পছন্দটির বিন্দুটিকে সম্বোধন করে না। আমি মনে করি ডকার এই 2 টি ত্রুটি রোধ করতে এইভাবে কাজ করে:

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