অটোমেটিং ডকার মোতায়েন সম্পর্কিত আমার নিবন্ধ থেকে :
ডকার ইমেজ বনাম পাত্রে
ডকারল্যান্ডে ইমেজ রয়েছে এবং ধারক রয়েছে । দুটি ঘনিষ্ঠভাবে সম্পর্কিত, তবে স্বতন্ত্র। আমার জন্য, এই দ্বৈতত্ত্বকে উপলব্ধি করা ডকারকে অত্যন্ত স্পষ্ট করে জানিয়েছে।
একটি চিত্র কি?
একটি চিত্র একটি জড়, অপরিবর্তনীয়, ফাইল যা মূলত একটি ধারকটির একটি স্ন্যাপশট। চিত্রগুলি দিয়ে তৈরি করা হয় বিল্ড কমান্ড এবং রান দিয়ে শুরু করার সাথে সাথে তারা একটি ধারক তৈরি করবে । চিত্রগুলি একটি ডকার রেজিস্ট্রি যেমন রেজিস্ট্রি । Hub.docker.com এ সংরক্ষণ করা হয় । যেহেতু তারা বেশ বড় হয়ে উঠতে পারে, তাই চিত্রগুলি অন্যান্য চিত্রের স্তরগুলির সমন্বয়ে তৈরি করা হয়েছে, যাতে নেটওয়ার্কের মাধ্যমে চিত্র স্থানান্তর করার সময় ন্যূনতম পরিমাণে ডেটা প্রেরণ করা যায়।
স্থানীয় চিত্রগুলি চালিয়ে তালিকাভুক্ত করা যেতে পারে docker images
:
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
ubuntu 13.10 5e019ab7bf6d 2 months ago 180 MB
ubuntu 14.04 99ec81b80c55 2 months ago 266 MB
ubuntu latest 99ec81b80c55 2 months ago 266 MB
ubuntu trusty 99ec81b80c55 2 months ago 266 MB
<none> <none> 4ab0d9120985 3 months ago 486.5 MB
কিছু বিষয় লক্ষণীয়:
- চিত্র আইডি একটি চিত্রের জন্য সত্য সনাক্তকারী প্রথম 12 টি অক্ষর। আপনি প্রদত্ত চিত্রের অনেকগুলি ট্যাগ তৈরি করতে পারেন, তবে তাদের আইডিগুলি সমস্ত একই (উপরের মত) হবে।
- ভার্চুয়াল সাইজ হয় ভার্চুয়াল কারণ এটি সব স্বতন্ত্র অন্তর্নিহিত স্তর মাপ আপ যোগ হচ্ছে। এর অর্থ এই যে কলামের সমস্ত মানের সংখ্যার এই চিত্রগুলির দ্বারা ব্যবহৃত ডিস্ক জায়গার চেয়ে সম্ভবত অনেক বড়।
- REPOSITORY কলামের মান কমান্ডের
-t
পতাকা docker build
থেকে বা docker tag
বিদ্যমান চিত্র- থেকে আসে । আপনি নামটি ব্যবহার করে ইমেজগুলিতে ট্যাগ করতে নির্দ্বিধায় যা আপনার কাছে বোধগম্য, তবে জেনে থাকুন যে ডকার ট্যাগটিকে একটি docker push
বা রেজিস্ট্রি অবস্থান হিসাবে ব্যবহার করবেdocker pull
।
- একটি ট্যাগ সম্পূর্ণ ফর্ম হয়
[REGISTRYHOST/][USERNAME/]NAME[:TAG]
। জন্য ubuntu
উপরে REGISTRYHOST হতে অনুমিত হয় registry.hub.docker.com
। সুতরাং আপনি যদি my-application
কোনও রেজিস্ট্রিতে ডেকে আপনার চিত্রটি সংরক্ষণ করার পরিকল্পনা করেন তবে আপনার docker.example.com
সেই চিত্রটি ট্যাগ করা উচিতdocker.example.com/my-application
।
- TAG কলামটি কেবলমাত্র [: TAG] এর অংশ সম্পূর্ণ ট্যাগের । এটি দুর্ভাগ্যজনক পরিভাষা।
- দ্য
latest
ট্যাগ, ঐন্দ্রজালিক নয় এটা শুধু ডিফল্ট ট্যাগ যখন আপনি একটি ট্যাগ নির্দিষ্ট না করে।
- আপনার আইটেম আইডির সাহায্যে অচিহ্নযুক্ত চিত্র থাকতে পারে। এগুলি
<none>
TAG এবং REPOSITORY পাবে। তাদের সম্পর্কে ভুলে যাওয়া সহজ।
চিত্রগুলির উপর আরও তথ্য ডকার ডকুমেন্টেশন এবং শব্দকোষ থেকে উপলব্ধ ।
একটি পাত্রে কি?
প্রোগ্রামিং রূপক ব্যবহার করতে, যদি কোনও চিত্র একটি শ্রেণি হয়, তবে একটি ধারক একটি শ্রেণীর উদাহরণ — একটি রানটাইম অবজেক্ট। ধারকরা আশা করছেন আপনি কেন ডকার ব্যবহার করছেন; এগুলি অ্যাপ্লিকেশন চালানোর জন্য এমন একটি পরিবেশের হালকা ও পোর্টেবল এনক্যাপসুলেশন।
এর সাথে স্থানীয় চলমান পাত্রে দেখুন docker ps
:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f2ff1af05450 samalba/docker-registry:latest /bin/sh -c 'exec doc 4 months ago Up 12 weeks 0.0.0.0:5000->5000/tcp docker-registry
এখানে আমি ডকার রেজিস্ট্রিটির একটি ডকারাইজড সংস্করণ চালাচ্ছি, যাতে আমার ছবিগুলি সংরক্ষণ করার জন্য আমার একটি ব্যক্তিগত জায়গা থাকে। আবার কিছু বিষয় লক্ষণীয়:
- চিত্র আইডির মতো, কনটেনার আইডি হ'ল ধারকটির সত্যিকারের শনাক্তকারী। এটির একই ফর্ম রয়েছে তবে এটি ভিন্ন ধরণের অবজেক্টকে চিহ্নিত করে।
docker ps
কেবল চালিত পাত্রে আউটপুট । আপনি সমস্ত পাত্রে ( চলমান বা থামানো ) দেখতে পারেন docker ps -a
।
--name
পতাকাগুলির মাধ্যমে একটি সূচিত ধারক সনাক্ত করতে NAMES ব্যবহার করা যেতে পারে ।
কীভাবে চিত্র এবং পাত্রে বিল্ডআপ এড়ানো যায়
ডকারের সাথে আমার প্রথম হতাশাগুলি ছিল অবিরত চিত্রগুলি এবং থামানো পাত্রে আপাতদৃষ্টিতে ধ্রুবক গঠন । কয়েক মুহুর্তে এই বিল্ডআপটি সর্বাধিক হার্ড ড্রাইভগুলির ফলে আমার ল্যাপটপটি ধীর করে দেয় বা আমার স্বয়ংক্রিয় বিল্ড পাইপলাইন বন্ধ করে দেয়। "সর্বত্র পাত্রে" সম্পর্কে কথা বলুন!
docker rmi
সাম্প্রতিক dangling=true
ক্যোয়ারির সাথে একত্রিত হয়ে আমরা সমস্ত অবরুদ্ধ চিত্রগুলি সরাতে পারি :
docker images -q --filter "dangling=true" | xargs docker rmi
ডকার বিদ্যমান পাত্রে থাকা চিত্রগুলির পিছনে থাকা চিত্রগুলি সরাতে সক্ষম হবে না, তাই আপনাকে docker rm
প্রথমে থেমে থাকা পাত্রে সরিয়ে ফেলতে হতে পারে :
docker rm `docker ps --no-trunc -aq`
এগুলি ডকারের সাথে পরিচিত ব্যথা পয়েন্ট এবং ভবিষ্যতে প্রকাশে এটি সম্বোধন করা যেতে পারে। যাইহোক, চিত্র এবং ধারকগুলির স্পষ্ট বোঝার সাথে এই পরিস্থিতিগুলি কয়েকটি অভ্যাসের মাধ্যমে এড়ানো যেতে পারে:
- সর্বদা একটি অকেজো, থামানো ধারক দিয়ে অপসারণ করুন
docker rm [CONTAINER_ID]
।
- অকেজো, থামানো ধারকযুক্ত পেছনের চিত্রটি সর্বদা সরিয়ে ফেলুন
docker rmi [IMAGE_ID]
।