2013-12-09 6 views
45

मैं एक डॉकरफ़ाइल पर काम कर रहा हूं। मुझे अभी एहसास हुआ है कि मैं सभी के साथ अनुक्रमित छवियों के साथ FROM का उपयोग कर रहा हूं।मैं स्थानीय छवि को डॉकरफ़ाइल के साथ मूल छवि के रूप में कैसे उपयोग कर सकता हूं?

तो मुझे आश्चर्य है:

  • मैं इसे सूचकांक को pushing बिना अपने स्थानीय (कस्टम) मेरी आधार (FROM) छवि के रूप में छवियों में से एक का उपयोग कैसे कर सकते हैं?

उत्तर

55

आपको कुछ भी विशेष कर के बिना उपयोग कर सकते हैं। यदि आपके पास blah नामक स्थानीय छवि है तो आप FROM blah कर सकते हैं। यदि आप अपने डॉकरफ़ाइल में FROM blah करते हैं, लेकिन पर कोई स्थानीय छवि blah, है, तो डॉकर इसे रजिस्ट्री से खींचने का प्रयास करेगा।

दूसरे शब्दों में, यदि डॉकरफ़ाइल FROM ubuntu करता है, लेकिन आपके पास ubuntu नामक स्थानीय छवि है, तो आपकी छवि इसे ओवरराइड कर देगी।

+0

धन्यवाद @jpetazzo! – Phil

+2

मेरे लिए काम नहीं करता है - boot2docker के साथ एक समस्या हो सकती है? मेरे पास नवीनतम संस्करण 1.3.1 है ... डॉकर स्थानीय रूप से पहले जांच नहीं करता है (या शायद इसकी रिपोर्ट नहीं करता है) यह रजिस्ट्री से खींचने का प्रयास करने के लिए सीधे चला जाता है http://stackoverflow.com/q/27046118/202168 – Anentropic

+0

@ एंट्रोपिक मैं boot2docker 1.5 का उपयोग कर रहा हूँ। बैश-4.3 $ डोकर छवियों भंडार टैग छवि आईडी आभासी आकार बनाया ubuntu1504gcc484 नवीनतम 0378ea1c0b6c 19 घंटे पहले 1.36 जीबी और "ubuntu1504gcc484 से" कर मेरे दूसरे Dockerfile में, और यह सिर्फ ठीक काम करता है। (खराब स्वरूपण के लिए माफ़ी) – Pejvan

10

सत्यापित: यह डोकर 1.7.0 में अच्छी तरह से काम करता है।

Btw, --pull=true जब docker build आदेश चलाकर निर्दिष्ट नहीं करते हैं:

if you want use the local image as the base image, please without the option --pull=true, --pull=true will always attempt to pull a newer version of the image.

https://github.com/docker/docker/issues/14943

+3

यदि आपकी छवि में नाम में '-' वर्ण (उदाहरण के लिए 'मेरी छवि' है) तो आपका डॉकर स्थानीय रूप से इस छवि को हल नहीं करेगा, मुझे नहीं पता कि क्यों इसे ठीक करने के लिए, बस '-' वर्ण का उपयोग न करें, डॉकर-कंपोज़ 1.8 और डॉकर 1.11 – deFreitas

+0

पर परीक्षण किया गया था, मुझे 'डॉकर संस्करण 17.06.2-सीई, सीईसी 0 बी 72' पर एक हाइफेनेटेड नाम के साथ कोई समस्या नहीं थी, लेकिन सुनिश्चित करें कि आपने अपनी छवि को टैग किया है, तो आप छवि विनिर्देश के हिस्से के रूप में टैग शामिल करते हैं (स्थानीयकरण से: टैग)। – Scott

3

मैं एक टिप्पणी (@defreitas) जोड़ने के लिए प्रतिष्ठा की जरूरत नहीं है तो एक जवाब के रूप में जोड़ने । आपके पास हो सकता है - आपकी छवियों में वर्ण। मान लें कि आपके पास एक स्थानीय छवि (स्थानीय रजिस्ट्री नहीं है) नाम 7.3.1611 के साथ सेंटोस-बेस-छवि नामित है।

docker version 
     Client: 
     Version:   1.12.6 
     API version:  1.24 
     Package version: docker-common-1.12.6-16.el7.centos.x86_64 
     Go version:  go1.7.4 

     Server: 
     Version:   1.12.6 
     API version:  1.24 
     Package version: docker-common-1.12.6-16.el7.centos.x86_64 
     Go version:  go1.7.4 

docker images 
REPOSITORY   TAG 
centos-base-image  7.3.1611 

Dockerfile

FROM centos-base-image:7.3.1611 
RUN yum -y install epel-release libaio bc flex 

परिणाम

Sending build context to Docker daemon 315.9 MB 
Step 1 : FROM centos-base-image:7.3.1611 
    ---> c4d84e86782e 
Step 2 : RUN yum -y install epel-release libaio bc flex 
    ---> Running in 36d8abd0dad9 
... 

FROM ऊपर के उदाहरण में अपने स्थानीय छवि प्राप्त करते समय किया जाता है, आप अपने कस्टम रजिस्ट्री से एक छवि को लाने के लिए अतिरिक्त निर्देश प्रदान कर सकते हैं (उदाहरण के लिए FROM localhost:5000/my-image:with.tag)। https://docs.docker.com/engine/reference/commandline/pull/#pull-from-a-different-registry देखें और https://docs.docker.com/registry/#tldr

अंत में, यदि आपकी छवि जब एक नाम प्रदान हल नहीं किया जा रहा है, छवि के लिए एक टैग जोड़ने जब आप इसे बनाने

https://docs.docker.com/engine/reference/commandline/commit/ 

इस फार्म की कोशिश ने वही समस्या

https://github.com/moby/moby/issues/8975 
का वर्णन करता है

एक विशिष्ट टैग को छोड़ते हुए करके, डोकर एक छवि के लिए दिखेगा "नवीनतम" टैग है, तो या तो के साथ एक छवि बनाने के लिए: नवीनतम टैग, या

से अपने को बदलने

जोड़ा गया कोड ब्लॉक क्योंकि मैं और अधिक तो 2 लिंक ... पोस्ट करने के लिए पर्याप्त प्रतिनिधि नहीं है के रूप में ऊपर दिए गए लिंक;)

संबंधित मुद्दे