মিনিক्यूबের সাথে কীভাবে স্থানীয় ডকার চিত্র ব্যবহার করবেন?


299

আমার বেশ কয়েকটি ডকার চিত্র রয়েছে যা আমি ব্যবহার করতে চাই minikube। আমি প্রথমে স্থানীয় চিত্র সরাসরি ব্যবহারের পরিবর্তে প্রথমে আপলোড করতে হবে এবং একই চিত্রটি ডাউনলোড করতে চাই না। আমি এটা কিভাবে করবো?

স্টাফ আমি চেষ্টা করেছি:
1. আমি এই কমান্ডগুলি চালানোর চেষ্টা করেছি (আলাদাভাবে, উভয় বার মিনিকুবের উদাহরণ মুছে ফেলা এবং নতুন করে শুরু করা)

kubectl run hdfs --image=fluxcapacitor/hdfs:latest --port=8989
kubectl run hdfs --image=fluxcapacitor/hdfs:latest --port=8989 imagePullPolicy=Never

আউটপুট:

NAME                    READY     STATUS              RESTARTS   AGE
hdfs-2425930030-q0sdl   0/1       ContainerCreating   0          10m

এটি কেবল কিছু স্থিতিতে আটকে যায় তবে কখনও প্রস্তুত অবস্থায় পৌঁছায় না।


২. আমি একটি রেজিস্ট্রি তৈরি করার চেষ্টা করেছি এবং তারপরে এটিতে চিত্রগুলি রাখলাম তবে এটি কার্যকর হয়নি either আমি এটি ভুলভাবে করেছি তবে এই কাজটি করার জন্য সঠিক নির্দেশনা খুঁজে পাচ্ছি না।

স্থানীয় কুবারনেট উদাহরণে স্থানীয় ডকার চিত্র ব্যবহার করার জন্য দয়া করে নির্দেশাবলী সরবরাহ করুন।
ওএস: উবুন্টু 16.04
ডকার: ডকার সংস্করণ 1.13.1, বিল্ড 092cba3
কুবারনেটস:

Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.3", GitCommit:"029c3a408176b55c30846f0faedf56aae5992e9b", GitTreeState:"clean", BuildDate:"2017-02-15T06:40:50Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.2", GitCommit:"08e099554f3c31f6e6f07b448ab3ed78d0520507", GitTreeState:"clean", BuildDate:"1970-01-01T00:00:00Z", GoVersion:"go1.7.1", Compiler:"gc", Platform:"linux/amd64"}

কেউ যদি আমাকে এমন সমাধান করতে সহায়তা করতে পারে যা ডকর-রচনাটি এটি করতে ব্যবহার করে, তবে তা দুর্দান্ত। ধন্যবাদ।

সম্পাদনা করুন:

চিত্রগুলি এতে লোড হয়েছে eval $(minikube docker-env:

REPOSITORY                                            TAG                 IMAGE ID            CREATED             SIZE
fluxcapacitor/jupyterhub                              latest              e5175fb26522        4 weeks ago         9.59 GB
fluxcapacitor/zeppelin                                latest              fe4bc823e57d        4 weeks ago         4.12 GB
fluxcapacitor/prediction-pmml                         latest              cae5b2d9835b        4 weeks ago         973 MB
fluxcapacitor/scheduler-airflow                       latest              95adfd56f656        4 weeks ago         8.89 GB
fluxcapacitor/loadtest                                latest              6a777ab6167c        5 weeks ago         899 MB
fluxcapacitor/hdfs                                    latest              00fa0ed0064b        6 weeks ago         1.16 GB
fluxcapacitor/sql-mysql                               latest              804137671a8c        7 weeks ago         679 MB
fluxcapacitor/metastore-1.2.1                         latest              ea7ce8c5048f        7 weeks ago         1.35 GB
fluxcapacitor/cassandra                               latest              3cb5ff117283        7 weeks ago         953 MB
fluxcapacitor/apachespark-worker-2.0.1                latest              14ee3e4e337c        7 weeks ago         3.74 GB
fluxcapacitor/apachespark-master-2.0.1                latest              fe60b42d54e5        7 weeks ago         3.72 GB
fluxcapacitor/package-java-openjdk-1.8                latest              1db08965289d        7 weeks ago         841 MB
gcr.io/google_containers/kubernetes-dashboard-amd64   v1.5.1              1180413103fd        7 weeks ago         104 MB
fluxcapacitor/stream-kafka-0.10                       latest              f67750239f4d        2 months ago        1.14 GB
fluxcapacitor/pipeline                                latest              f6afd6c5745b        2 months ago        11.2 GB
gcr.io/google-containers/kube-addon-manager           v6.1                59e1315aa5ff        3 months ago        59.4 MB
gcr.io/google_containers/kubedns-amd64                1.9                 26cf1ed9b144        3 months ago        47 MB
gcr.io/google_containers/kube-dnsmasq-amd64           1.4                 3ec65756a89b        5 months ago        5.13 MB
gcr.io/google_containers/exechealthz-amd64            1.2                 93a43bfb39bf        5 months ago        8.37 MB
gcr.io/google_containers/pause-amd64           

উত্তর:


408

হিসাবে README বর্ণনা করে, আপনার সাথে Minikube থেকে Docker ডেমন পুনরায় ব্যবহার করতে পারেন eval $(minikube docker-env)

সুতরাং কোনও চিত্র এটি আপলোড না করে ব্যবহার করতে, আপনি এই পদক্ষেপগুলি অনুসরণ করতে পারেন:

  1. এর সাথে পরিবেশের ভেরিয়েবল সেট করুন eval $(minikube docker-env)
  2. মিনিক्यूबের ডকার ডেমন দিয়ে চিত্রটি তৈরি করুন (উদাঃ docker build -t my-image .)
  3. পোড বর্ণনায় চিত্রটি বিল্ড ট্যাগের মতো সেট করুন (যেমন my-image)
  4. সেট imagePullPolicyথেকে Never, অন্যথায় Kubernetes ইমেজ ডাউনলোড করতে চেষ্টা করবে।

গুরুত্বপূর্ণ দ্রষ্টব্য: আপনি যে eval $(minikube docker-env)টার্মিনালটি ব্যবহার করতে চান তা চালাতে হবে কারণ এটি কেবল বর্তমান শেল সেশনের জন্য পরিবেশের পরিবর্তনশীলগুলি সেট করে।


1
এএফএআইএস আপনি কেবল এটির সাথে একটি নতুন মিনুকুবই করতে পারেন minikube start --disk-size 100g। আর একটি সমাধান হ'ল docker imagesএবং এর সাথে পুরানো চিত্রগুলি মুছে ফেলা docker rmi
Svenwltr

6
eval $(minikube docker-env)আপনি ইমেজগুলি পুনর্নির্মাণের চেষ্টা করার আগে আপনি যে টার্মিনালটিতে কাজ করছেন তা বন্ধ করার পরে চালানোর কথা মনে রাখা খুব গুরুত্বপূর্ণ ... মিনিকুবে আপডেট হচ্ছে না এমন চিত্রের সাথে লড়াই করে মাত্র 6 ঘন্টা পোড়া হয়েছে ... দেখে মনে হচ্ছে প্যাকেজটি আপডেট হচ্ছে না .. ... সত্যিই কেবল মিনিক्यूबটি উল্লেখ করা ইমেজটি আপডেট করা হচ্ছে না।
মাইক

1
ডিফল্ট টান নীতি হ'ল IfNotPresentএর মানে হল আমাদের যা করতে হবে তা হল পরিবেশের ভেরিয়েবলগুলি সেট করা।
বেইজি

29
আপনি যদি ফিরে যেতে চান বা মিনিক्यूब থেকে এনভিটি প্রস্থান করতে পারেন ..eval $(minikube docker-env -u)
বুড়ি

1
এ @nmxl বর্ণন এখানে
testuser

175

@ স্যাভেনল্ট্রির সমাধানের ভিত্তিতে আমার পক্ষে কী কাজ করেছে:

# Start minikube
minikube start

# Set docker env
eval $(minikube docker-env)

# Build image
docker build -t foo:0.0.1 .

# Run in minikube
kubectl run hello-foo --image=foo:0.0.1 --image-pull-policy=Never

# Check that it's running
kubectl get pods

3
: আপনি yml (imagePullPolicy শুভেচ্ছা) উপরের কমান্ড লাইন সংস্করণ জানতে পারেন এখানে kubernetes.io/docs/concepts/containers/images
granadaCoder

127

এই উত্তরটি মিনিকুবে সীমাবদ্ধ নয়!

স্থানীয় রেজিস্ট্রি ব্যবহার করুন:

docker run -d -p 5000:5000 --restart=always --name registry registry:2

এখন আপনার ছবিটি সঠিকভাবে ট্যাগ করুন:

docker tag ubuntu localhost:5000/ubuntu

নোট করুন যে লোকালহোস্টটি রেজিস্ট্রি কনটেইনার চলমান মেশিনের ডিএনএস নামে পরিবর্তন করা উচিত।

এখন আপনার চিত্রটি স্থানীয় রেজিস্ট্রিতে চাপ দিন:

docker push localhost:5000/ubuntu

আপনি এটি আবার টানতে সক্ষম হওয়া উচিত:

docker pull localhost:5000/ubuntu

স্থানীয় রেজিস্ট্রি ব্যবহার করতে এখন আপনার ইয়ামল ফাইলটি পরিবর্তন করুন।

রেজিস্ট্রিতে চিত্রগুলি ধরে রাখতে যথাযথ স্থানে ভলিউম বাড়ানোর কথা চিন্তা করুন।

হালনাগাদ:

এলি যেমন বলেছিলেন, HTTP ব্যবহারের জন্য আপনাকে স্থানীয় রেজিস্ট্রিটিকে অনিরাপদ হিসাবে যুক্ত করতে হবে (লোকাল হোস্ট ব্যবহার করার সময় প্রয়োগ নাও হতে পারে তবে স্থানীয় হোস্টনাম ব্যবহার করে প্রয়োগ করা হয়)

উত্পাদনে HTTP ব্যবহার করবেন না, জিনিসগুলি সুরক্ষিত করার জন্য চেষ্টা করুন।


2
| স্থানীয় রেজিস্ট্রি ব্যবহার করতে এখন আপনার ইয়ামল ফাইলটি পরিবর্তন করুন। আপনি কি এই সামান্য ব্যাখ্যা করতে সক্ষম? আমি স্থানীয় রেজিস্ট্রিতে ঠাণ্ডা করেছি (শীতল কৌশল) তবে আমার একই সমস্যা আছে যা এর সাথে সংযোগ স্থাপনের জন্য আমি মনিকুব পেতে পারি না।
Zach Estela

3
@ জাচেস্টেলা ইমেলে চিত্রটির নাম পরিবর্তন করুন<registryIP>:5000/ubuntu
ফরহাদ

@ ফরহাদফরাহী "রেজিস্ট্রি চালানোর যন্ত্রটির ডিএনএস নাম" কোথায় পাব?
দান

1
পছন্দ করেছেন আমি শুধু এটি জানতে চাই। আমি উইন্ডোজ চলমান জন্য ডকার পেতে ডকার টিউটোরিয়াল পদক্ষেপ অনুসরণ।
দান

1
@ ফরহাদফরাহী: দয়া করে আপনার উত্তরে যুক্ত করুন যে আপনাকে http: docs.docker.com/registry/insecure ব্যবহার করার জন্য স্থানীয় রেজিস্ট্রিটিকে অনিরাপদ হিসাবে যুক্ত করতে হবে (স্থানীয় হোস্ট ব্যবহার করার সময় প্রয়োগ নাও হতে পারে তবে স্থানীয় হোস্টনাম ব্যবহার করে প্রয়োগ করা হয়) )।
এলি আলগ্রান্টি

14

এই উত্তরের ভিত্তিতে @ ফরহাদের উত্তরে যুক্ত করা ,

এটি একটি স্থানীয় রেজিস্ট্রি সেটআপ করার পদক্ষেপগুলি।

লোকাল মেশিনে সেটআপ

স্থানীয় মেশিনে হোস্টনাম সেটআপ /etc/hostsকরুন: এই লাইনটি যুক্ত করতে সম্পাদনা করুন

docker.local 127.0.0.1

এখন একটি স্থানীয় রেজিস্ট্রি শুরু করুন (নন-ডেমন মোড চালানোর জন্য অপসারণ -d):

docker run -d -p 5000:5000 --restart=always --name registry registry:2

এখন আপনার ছবিটি সঠিকভাবে ট্যাগ করুন:

docker tag ubuntu docker.local:5000/ubuntu

এখন আপনার চিত্রটি স্থানীয় রেজিস্ট্রিতে চাপ দিন:

docker push docker.local:5000/ubuntu

চিত্রটি ধাক্কা দেওয়া হয়েছে তা যাচাই করুন:

curl -X GET http://docker.local:5000/v2/ubuntu/tags/list

মিনিক्यूबে সেটআপ করুন

এর সাথে মিনিকুবে এসএসএস করুন: minukube ssh

/etc/hostsএই লাইনটি যুক্ত করতে সম্পাদনা করুন

docker.local <your host machine's ip>

অ্যাক্সেস যাচাই করুন:

curl -X GET http://docker.local:5000/v2/ubuntu/tags/list

এখন আপনি যদি টানতে চেষ্টা করেন তবে আপনি কোনও HTTP অ্যাক্সেস ত্রুটি পেতে পারেন।

অনিরাপদ অ্যাক্সেস সক্ষম করুন :

আপনি যদি সর্বদা এই স্থানীয় সেটআপটির সাথে মিনকিউব ব্যবহার করার পরিকল্পনা করে থাকেন তবে ডিফল্টরূপে অনিরাপদ রেজিস্ট্রি ব্যবহার করতে একটি মিনিক्यूब তৈরি করুন (বিদ্যমান ক্লাস্টারে কাজ করবে না)।

minikube start --insecure-registry="docker.local:5000"

অন্যথায় নীচের পদক্ষেপগুলি অনুসরণ করুন:

systemctl stop docker

ডকার সিরিস ফাইল সম্পাদনা করুন: এর থেকে পথ পান systemctl status docker

এটা হতে পারে :

/etc/systemd/system/docker.service.d/10-machine.conf বা /usr/lib/systemd/system/docker.service

এই পাঠ্যটি সংযোজন করুন (আপনার আইপি দিয়ে 192.168.1.4 প্রতিস্থাপন করুন)

--ইনসিকিউর-রেজিস্ট্রি ডকার.লোকাল: 5000 --ইনসিকিউর-রেজিস্ট্রি 192.168.1.4:5000

এই লাইনে

এক্সিকিস্টার্ট = / ইউএসআর / বিন / ডকার ডেমন-এইচ টিসিপি: //0.0.0.0.0: 2376-এইচ ইউনিক্স: ///var/run/docker.sock --tlsverify --tlscacert /etc/docker/ca.pem - tlscert /etc/docker/server.pem --tlskey /etc/docker/server-key.pem --label প্রোভাইডার = ভার্চুয়ালবক্স - সুরক্ষার-রেজিস্ট্রি 10.0.0.0/24

systemctl daemon-reload
systemctl start docker

টানতে চেষ্টা করুন:

docker pull docker.local:5000/ubuntu

স্থানীয় রেজিস্ট্রি ব্যবহার করতে এখন আপনার ইয়ামল ফাইলটি পরিবর্তন করুন।

  containers:
    - name: ampl-django
      image: dockerhub/ubuntu

প্রতি

  containers:
    - name: ampl-django
      image: docker.local:5000/nymbleup

উত্পাদনে HTTP ব্যবহার করবেন না, জিনিসগুলি সুরক্ষিত করার জন্য চেষ্টা করুন।


12

গৃহীত উত্তর ছাড়াও, আপনি runনিম্নলিখিত কমান্ডের সাহায্যে মূলত যা চেয়েছিলেন ( কমান্ডটি ব্যবহার করে একটি স্থাপনা তৈরি করতে পারেন) তা অর্জন করতে পারেন :

kubectl run hdfs --image=fluxcapacitor/hdfs:latest --port=8989 --generator=run-pod/v1 

আমি কুবেরনেটস-দেব ফোরামটিতে জেনারেটর সম্পর্কিত তথ্য পেয়েছি:

আপনি যদি ব্যবহার করছেন তবে kubectl runএটি আপনার জন্য একটি ম্যানিফেস্ট তৈরি করে যা ডিফল্টরূপে imagePullPolicyসেট হয়ে যায় Always। আপনি একটি পেতে এই কমান্ড ব্যবহার করতে পারেন imagePullPolicyএর IfNotPresent, যার জন্য কাজ করবে minikube:

kubectl run --image=<container> --generator=run-pod/v1

ড্যান লরেন্স

https://groups.google.com/forum/#!topic/kubernetes-dev/YfvWuFr_XOM


9

একটি পদ্ধতি হ'ল স্থানীয়ভাবে চিত্রটি তৈরি করা এবং তারপরে:

docker save imageNameGoesHere | pv | (eval $(minikube docker-env) && docker load)

minikube docker-envকোনও ভিন্ন ব্যবহারকারী / সুডোর অধীনে চলমান সঠিক তথ্য না ফেরায়। পরিবর্তে আপনি চালাতে পারেন sudo -u yourUsername minikube docker-env

এটি এমন কিছু ফেরত দেওয়া উচিত:

export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.100:2376"
export DOCKER_CERT_PATH="/home/chris/.minikube/certs"
export DOCKER_API_VERSION="1.23"
# Run this command to configure your shell:
# eval $(minikube docker-env)

সঠিক কমান্ডটি হলdocker save imageNameGoesHere > pv | (eval $(minikube docker-env) && docker load)
সালভাদোর

1
docker save imageNameGoesHere | (eval $(minikube docker-env) && docker load)আমার জন্য কাজ করেছেন
lhaferkamp

5

যদি কেউ মিনিক्यूब এনভিভি সেট করার পরে স্থানীয় পরিবেশে ফিরে আসতে চাইছে, নিম্নলিখিত কমান্ডটি ব্যবহার করুন।

eval $(docker-machine env -u)

ইতিমধ্যে পোস্ট করা হয়েছে স্ট্যাকওভারফ্লো
কার্ল রিখটার

3
Minikube জন্য Eval $ (minikube Docker-env -u) হতে চান
miracle_the_V

4

কুবেরনেটস ডক্স থেকে:

https://kubernetes.io/docs/concepts/containers/images/#updating-images

ডিফল্ট টান নীতিটি হ'ল আইফনটপ্রেসেন্ট যার ফলে কুবলেটটি ইতিমধ্যে উপস্থিত থাকলে কোনও চিত্র টানা এড়িয়ে চলে। আপনি যদি সর্বদা একটি টানতে বাধ্য করতে চান তবে আপনি নিম্নলিখিতগুলির একটি করতে পারেন:

  • কনটেইনারটির চিত্রপুলি পলিসিকে সর্বদা সেট করুন;
  • ব্যবহার: ইমেজটি ব্যবহারের জন্য ট্যাগ হিসাবে সর্বশেষ;
  • ওভারএলপুলআইমেজস ভর্তি নিয়ামককে সক্ষম করুন।

অথবা অন্যভাবে পড়ুন: সর্বশেষ ট্যাগ ব্যবহার করে চিত্রগুলি সর্বদা টানতে বাধ্য করে। আপনি যদি eval $(minikube docker-env)উপরে বর্ণিত হিসাবে ব্যবহার করেন , তবে হয় কোনও ট্যাগ ব্যবহার করবেন না, বা আপনার স্থানীয় চিত্রটিতে একটি ট্যাগ অর্পণ করুন আপনি কুবারনেটসকে জোর করে টেনে আনার চেষ্টা করতে পারবেন।


3

এখন একটি মিনিক्यूब রেজিস্ট্রি অ্যাডন রয়েছে, এটি সম্ভবত সবচেয়ে সহজ উপায়। এটি কীভাবে ব্যবহার করবেন তা এখানে: https://minikube.sigs.k8s.io/docs/tasks/registry/insecure/

নোট করুন যে আমার ডিএনএস সমস্যা ছিল, এটি একটি বাগ হতে পারে।


ধন্যবাদ, এটি দুর্দান্ত কাজ করে।
টমাসজ ওয়াজিক

3

একটি সহজ পদ্ধতি যা "মিনিকুবের সাথে স্থানীয় ডকার চিত্রগুলি কীভাবে ব্যবহার করতে পারি?" এর মূল প্রশ্নের উত্তর দেয়, তা হল ছবিটি একটি তারার ফাইলে সংরক্ষণ এবং এটি মিনিক्यूबে লোড করা:

# export the docker image to a tar file
docker save --output my-image.tar the.full.path.to/the/docker/image:the-tag
# set local environment variables so that docker commands go to the docker in minikube
eval $(minikube docker-env)
# or if on windows: @FOR /f "tokens=*" %i IN ('minikube docker-env') DO @%i
# import the docker image from the tar file into minikube
docker load --input my-image.tar
# cleanup - put docker back to normal
eval $(minikube docker-env -u)
# or if on windows: @FOR /f "tokens=*" %i IN ('minikube docker-env -u') DO @%i

তারপরে ছবিটি চালানোতে নীচের মত একটি কমান্ড জড়িত। "- আইমেজ-পুল-পলিসি = কখনই নয়" প্যারামিটার অন্তর্ভুক্ত করার বিষয়টি নিশ্চিত করুন।

kubectl run my-image --image=the.full.path.to/the/docker/image:the-tag --image-pull-policy=Never --port=80

ভালভাবে ব্যাখ্যা করেছেন, কবজির মতো কাজ করেছেন। আমাকে কেবল সাথে কল docker saveকরতে হয়েছিল sudo, এবং তারপরে sudo chmod 664 my-image.tarএটি আমার বর্তমান ব্যবহারকারীর জন্য উপলভ্য করতে প্রস্তুত।
মীর গ্যাবে

আমি বিশ্বাস করি এটি দ্রুততম পদ্ধতির হওয়া উচিত।
শিওয়াকান্ত ভারতী

2

পূর্ববর্তী উত্তরগুলি যুক্ত করতে, আপনার যদি একটি টারবাল চিত্র থাকে তবে আপনি কেবল এটি স্থানীয় চিত্রের সেটটি আপনার কাছে লোড করতে পারেন lease docker image load -i /path/image.tarদয়া করে এটি পরে চালানো মনে রাখবেন eval $(minikube docker-env), যেহেতু মিনিক्यूब স্থানীয়ভাবে ইনস্টলড ডকার ইঞ্জিনের সাথে চিত্রগুলি ভাগ করে না।


2

অন্যান্য উত্তর হিসাবে ধরুন আপনি ভিএম এর সাথে মিনিক्यूब ব্যবহার করেছেন, সুতরাং আপনার স্থানীয় চিত্রগুলি মিনিক्यूब ভিএম থেকে অ্যাক্সেসযোগ্য নয়।

আপনি যদি এর সাথে মিনিক्यूब ব্যবহার করেন তবে আপনি --vm-driver=noneসহজেই image_pull_policyকখনও নেভিগেশন সেট করে স্থানীয় চিত্রগুলি পুনরায় ব্যবহার করতে পারেন :

kubectl run hello-foo --image=foo --image-pull-policy=Never

বা imagePullPolicyসংশ্লিষ্ট উদ্ভাসে কটেনারদের জন্য ক্ষেত্র স্থাপন করে .yaml


2

একটি ধারণা হ'ল স্থানীয়ভাবে ডকার চিত্রটি সংরক্ষণ করুন এবং পরে এটি মিনিক्यूबে লোড করুন:

যাক, উদাহরণস্বরূপ, আপনার ইতিমধ্যে পাক্কেল / ডকার-এয়ারফ্লো চিত্র রয়েছে।

  1. স্থানীয় চিত্রটিতে সেই চিত্রটি সংরক্ষণ করুন -

    docker save puckel/docker-airflow > puckel_docker_airflow.tar

  2. এখন মিনিক्यूब ডকার এনভিতে প্রবেশ করুন -

    eval $(minikube docker-env)

  3. স্থানীয়ভাবে সংরক্ষিত চিত্রটি লোড করুন -

    docker load < puckel_docker_airflow.tar

এটি যে সহজ এবং এটি একটি কবজ মত কাজ করে।


আপনার এখনও স্বীকৃত উত্তরের টিপ দরকার Set the imagePullPolicy to Never। যদি আপনার চিত্র যেমন কোনও ঠিকানার সাথে ট্যাগ করা থাকে us.icr.io/mydiv/my-service:v0.0.1তবে একটি মোতায়েনকারী এই চিত্রটিকে দূরবর্তী টানতে চেষ্টা করবে। যেহেতু আপনি ইতিমধ্যে ম্যানুয়ালি চিত্রটি অনুলিপি করেছেন তাই আপনার কোনও ঠিকানা (ধারক রেজিস্ট্রি) অ্যাক্সেস করতে পারে না এমন চিত্র থেকে ছবিটি টানতে আপনাকে কে 8 চাপতে হবে।
colm.anseo

1

আপনি যদি ডকারের ভিএম-এর মধ্যে কেবল8 -8 চালাতে পারতেন? ডকার ডেস্কটপের আরও সাম্প্রতিক সংস্করণগুলির সাথে এর জন্য নেটিভ সমর্থন রয়েছে ... আপনার কেবল সেই সমর্থন সক্ষম করতে হবে।

https://www.docker.com/blog/kubernetes-is- اوس- উপলভ্য- in- docker- desktop- stable- channel/ https://www.docker.com/blog/docker-windows-desktop- હવે- kubernetes /

আমি এটি কীভাবে খুঁজে পেয়েছি:

হেলমের জন্য ডকগুলি পড়ার সময়, তারা আপনাকে মিনিক्यूब ইনস্টল করার জন্য একটি সংক্ষিপ্ত টিউটোরিয়াল দেয়। এই টিউটোরিয়ালটি একটি ভিএম-তে মিনিক्यूब ইনস্টল করে যা ডকার থেকে পৃথক / পৃথক।

সুতরাং যখন আমার হেল্ম চার্টগুলি ইনস্টল করার সময় আসল, আমি ডকার ব্যবহার করে তৈরি করা চিত্রগুলি টানতে আমি হেলম / কে 8 পেতে পারি না। আমি এই প্রশ্নে এখানে পৌঁছেছি।

সুতরাং ... যদি আপনি ড8 ডেস্কটপের সাথে কে 8 এস এর যে কোনও সংস্করণই আসেন না কেন আপনি বাস করতে পারেন এবং ভিএম ডকারের যা কিছু আছে তার সাথে আপনি চলতে পারেন তবে সম্ভবত এই সমাধানটি অন্য কারও থেকে কিছুটা সহজ।

অস্বীকৃতি: নিশ্চিত না যে উইন্ডোজ / লিনাক্স ধারকগুলির মধ্যে স্যুইচিংয়ের ফলে কোনও কিছুর প্রভাব পড়বে।


আমি মনে করি আমাকে ইফনটপ্রেসেন্টেও পুলপ পলিসিগুলি সেট করতে হয়েছিল
চাদ

1

আপনার স্থানীয় ডকার চিত্রটি সরাসরি মিনিক्यूबে ঠেলে দেওয়ার একটি প্রবন্ধ এবং কার্যকর উপায় রয়েছে যা মিনিকুবে চিত্রগুলি আবার তৈরি করতে সময় সাশ্রয় করবে।

minikube cache add <Image name>

আরও বিশদ এখানে

চিত্রগুলি মিনিক्यूबে ঠেলে দেওয়ার সমস্ত সম্ভাব্য পদ্ধতি এখানে উল্লেখ করা হয়েছে: https://minikube.sigs.k8s.io/docs/handbook/pushing/


0

আপনি হয় ডকার শেলটি পুনরায় ব্যবহার করতে পারেন eval $(minikube docker-env), বিকল্প হিসাবে, আপনি docker save | docker loadশেলগুলি জুড়ে লাভ করতে পারেন ।


0
  1. মিনিক्यूब ডকার-এনএভিও সেটআপ করুন
  2. আবার একই ডকার চিত্রটি তৈরি করুন (মিনিক्यूब ডকার-এনভ ব্যবহার করে)
  3. আপনার নিয়োগের ক্ষেত্রে চিত্রপুলি পলিসিকে কখনই পরিবর্তন করুন

আসলে এখানে কী ঘটে, আপনার মিনিক्यूब আপনার ডকার ডেমনকে স্বতন্ত্র পরিষেবা বলে চিনতে পারে না check আপনাকে প্রথমে আপনার মিনিক्यूब-ডকার পরিবেশের নীচে নীচের ব্যবহারটি পরীক্ষা করতে হবে

 "eval $(minikube docker-env)"

আপনি যদি কমান্ডের নীচে চলে যান তবে এটি প্রদর্শিত হবে যেখানে আপনার মিনিক्यूबটি ডকারের জন্য কোথায়।

~$ minikube docker-env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.37.192:2376"
export DOCKER_CERT_PATH="/home/ubuntu/.minikube/certs"
export MINIKUBE_ACTIVE_DOCKERD="minikube"

**# To point your shell to minikube's docker-daemon, run:**
# eval $(minikube -p minikube docker-env)

আপনি একবার মিনিকুব ডকার-এনভিনিউ সেটআপ করার পরে আপনাকে আবার ছবি তৈরি করতে হবে অন্যথায় এটি ব্যর্থ হবে।



0


কুবেরনেটে স্থানীয় ডকার চিত্রগুলি চালনার পদক্ষেপগুলি 1. ইভল $ (মিনিক्यूब-পি মিনিক्यूब ডকার-এনভি)
2. শিল্পকর্মের ফাইলে, অনুচ্ছেদ বিভাগের অধীনে -> পাত্রে চিত্র
যুক্ত করুন পুলপোলসি: আইফনটপ্রেসেন্ট
বা চিত্রপুলি: কখনও নয়

apiVersion: "v1"
kind: Pod
metadata:
    name: web
    labels:
        name: web
        app: demo
spec:
    containers:
        - name: web
          image: web:latest
          imagePullPolicy: IfNotPresent
          ports:
              - containerPort: 5000
                name: http
                protocol: TCP


3. তারপর চালান kubectl create -f <filename>

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