"ডকার বিল্ড - পুল" এর উদ্দেশ্য কী?


17

ডকার চিত্র তৈরি করার সময় আপনি সাধারণত ব্যবহার করেন docker build .

তবে আমি খুঁজে পেয়েছি যে আপনি নির্দিষ্ট করতে পারেন --pull, তাই পুরো কমান্ডটি দেখতে হবেdocker build --pull .

আমি উদ্দেশ্য সম্পর্কে নিশ্চিত নই --pull। ডক্সরের অফিসিয়াল ডকুমেন্টেশন বলে যে "সর্বদা চিত্রের একটি নতুন সংস্করণ টানতে চেষ্টা করুন", এবং আমি নিশ্চিত নই যে এই প্রসঙ্গে এটি কী বোঝায়।

আপনি docker buildএকটি নতুন চিত্র তৈরি করতে ব্যবহার করেন এবং শেষ পর্যন্ত এটিকে কোথাও একটি ধারক রেজিস্ট্রিতে প্রকাশ করুন। আপনি এমন কিছু কেন টানতে চান যা এখনও বিদ্যমান নেই?

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

আপনার সাহায্যের জন্য ধন্যবাদ!

উত্তর:


17

আপনি ইতিমধ্যে স্থানীয়ভাবে যা ট্যাগ করেছেন তা পুনরায় ব্যবহারের পরিবর্তে এটি কোনও বেস চিত্র (গুলি) এর সর্বশেষতম সংস্করণ টানবে

উদাহরণস্বরূপ চলন্ত ট্যাগের উপর ভিত্তি করে একটি চিত্র নিন (যেমন ubuntu:bionic)। আপস্ট्रीम এ সময়ে সময়ে পরিবর্তন করে এবং পুনর্নির্মাণ করে তবে স্থানীয়ভাবে আপনার এক মাস বয়সী চিত্র থাকতে পারে। ডকার খুশিতে পুরানো বেসের বিরুদ্ধে তৈরি করবে। --pullপার্শ্ব প্রতিক্রিয়া হিসাবে টানুন যাতে আপনি সর্বশেষতম চিত্রের বিপরীতে তৈরি করেন

এটি ~ সাধারণত যত তাড়াতাড়ি সম্ভব প্রবাহ সুরক্ষা ফিক্সগুলি পেতে (বাসি, সম্ভাব্য দুর্বল চিত্রগুলি ব্যবহারের পরিবর্তে) এটির ব্যবহারের সেরা অভ্যাস। যদিও আপনাকে ব্রেকিং পরিবর্তনগুলি বন্ধ করে দিতে হবে (এবং যদি আপনি অপরিবর্তনীয় ট্যাগ ব্যবহার করেন তবে এটি কোনও পার্থক্য করে না)


এটি ubuntu:bionicচিত্রটির সাথে একটি খুব ভাল ব্যাখ্যা , যেহেতু এটির (স্পষ্টতই) কোনও সংস্করণ সংযুক্ত নেই, তবে তারা যখনই কোনও নতুন চিত্র প্রকাশ করবেন তখনও আলাদা থাকবে। সব বোঝা যায়। ধন্যবাদ!
জিম আহো

1
যদি বেস-চিত্রটি ubuntu:0.1.0উদাহরণস্বরূপ হয়, এবং তারা একটি নতুন চিত্র প্রকাশ করেছে তবে একই সংস্করণ সহ ubuntu:0.1.0- যেমন - এর অর্থ docker build --pullকি পুরো নতুন চিত্রটি আবার ডাউনলোড হবে? (যা বেশিরভাগ লোকেরা আমার অনুমান অনুসারে পছন্দ করবেন)
জিম আহো

আমি আশা করছি যে কেউ @ জিমআহো থেকে শেষ প্রশ্নটি পরিষ্কার করে দেবে কারণ এটি আমি আরও ভাল করে বুঝতে চাই। যদি চিত্রটি সবেমাত্র ঠেলাঠেলি করা হত, এবং অন্য কোনও কিছুই পরিবর্তিত হয়নি, তবে এটি পুনর্নির্মাণ না হওয়ার ক্ষেত্রে কী ঘটে?
learning2leear

2
@ শেখার2 উত্তরটি হ্যাঁ, ডকারের চিত্রের ট্যাগটি কেবল একটি স্ট্রিং, সুতরাং "0.1.0" উত্তর "বায়োনিক" এর উদাহরণের চেয়ে আলাদা নয়
অ্যান্টনি সটাইল

@ অ্যান্থনিসটাইল ধন্যবাদ খুব.
learning2lear

1

সহজ উত্তর। docker buildস্থানীয় ডকফেরাইল থেকে তৈরি করতে ব্যবহৃত হয়। docker pullডকার হাব থেকে টানতে ব্যবহৃত হয়। আপনি যদি ডকার ফাইল ছাড়াই ডকার বিল্ড ব্যবহার করেন তবে এটি একটি ত্রুটি ছুঁড়ে।

আপনি যখন নির্দিষ্ট করেন --pullবা :latestডকার নতুন সংস্করণটি ডাউনলোড করার চেষ্টা করবেন (যদি থাকে)

মূলত, আপনি যদি - পুল যোগ করেন তবে এটি প্রতিবার চালিত হওয়ার সাথে সাথে নতুন সংস্করণটি টানতে চেষ্টা করবে।


আপনার যদি স্তরযুক্ত চিত্রগুলি থাকে - এটি কী সবসময় সবসময় টানবে ?
জিম আহো

আপনার যদি স্তরযুক্ত চিত্র থাকে তবে কিছুকে মেশিনে (পুরানো স্তরগুলি) ক্যাশে করা হবে এবং যা কিছু নতুন স্তর টানা হবে।
ডুডফ

0

ডকার --pull পতাকাটিকে  docker buildযেমন  পাস করার অনুমতি দেয়  docker build . --pull -t myimage। স্থানীয়ভাবে সংস্করণ পাওয়া সত্ত্বেও বিল্ডটি সর্বদা সর্বশেষতম ধারক চিত্র ব্যবহার করে তা নিশ্চিত করার প্রস্তাবিত উপায়। তবে একটি অতিরিক্ত বিষয় উল্লেখযোগ্য:

আপনার বিল্ডটি সম্পূর্ণরূপে পুনর্নির্মাণ হয়েছে তা নিশ্চিত করার জন্য, আপডেটের জন্য বেস চিত্রটি পরীক্ষা সহ, নির্মাণের সময় নিম্নলিখিত বিকল্পগুলি ব্যবহার করুন:

--no-cache - এটি ইতিমধ্যে উপলব্ধ স্তর পুনর্নির্মাণকে বাধ্য করবে।

সম্পূর্ণ কমান্ডটি এর মতো দেখতে পাবেন:

docker build . --pull --no-cache --tag myimage:version

একই বিকল্পগুলির জন্য উপলব্ধ docker-compose:

docker-compose build --no-cache --pull


সাধারণ ব্যবহারে আপনার প্রয়োজন হবে না --no-cache। যদি বেস চিত্রটি আপডেট হয় (এবং --pullএকটি নতুন সংস্করণ পায়) যা স্বয়ংক্রিয়ভাবে ক্যাশেটিকে অবৈধ করে দেয়; একইভাবে যদি আপনি COPYআলাদা কোড করেন যা ক্যাশেটিকে অবৈধ করে দেবে। কেবলমাত্র যদি আপনি apt-get installকোনও নেটওয়ার্ক-হোস্ট করা প্যাকেজটির মতো কিছু করে থাকেন তবে এটি কেবলমাত্র প্রভাব ফেলবে, যদি --no-cacheবেস ইমেজটি আপডেট না হয় তবে এটি আরও নতুন সংস্করণ পরীক্ষা করতে পারে।
ডেভিড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.