docker - tutorial - kubernetes




একটি হোস্ট থেকে একটি হোস্ট থেকে অন্য একটি সংগ্রহস্থল ব্যবহার না করে কিভাবে ডকার ইমেজ কপি (10)

অন্যান্য অন্যান্য উত্তর খুব সহায়ক। আমি শুধু একই সমস্যা মাধ্যমে গিয়েছিলাম এবং docker machine scp সঙ্গে একটি সহজ উপায় খুঁজে বের করে।

ডকার মেশিন v0.3.0 থেকে, স্কোপিটি একটি ডকার মেশিন থেকে অন্য ফাইলগুলিতে অনুলিপি করার জন্য চালু করা হয়েছিল। আপনার স্থানীয় কম্পিউটার থেকে একটি ফাইল অনুলিপি করতে চান যদি এটি AWS EC2 বা ডিজিটাল মহাসাগর হিসাবে একটি দূরবর্তী ডকার মেশিনে অনুলিপি করতে চান কারণ ডকার মেশিনটি আপনার জন্য SSH শংসাপত্রগুলির যত্ন নিচ্ছে।

  1. docker save মত ছবিগুলি সংরক্ষণ করুন:

    docker save -o docker-images.tar app-web
    
  2. ডকার-মেশিন scp ব্যবহার করে ছবি কপি করুন

    docker-machine scp ./docker-images.tar remote-machine:/home/ubuntu
    

আপনার রিমোট ডকার মেশিনটি remote-machine এবং অনুমান করুন যে আপনি tar ফাইলটি চান /home/ubuntu

  1. ডকার ইমেজ লোড করুন

    docker-machine ssh remote-machine sudo docker load -i docker-images.tar
    

কিভাবে আমি একটি মেশিন থেকে অন্য ডিভাইসে একটি ডকার ইমেজ স্থানান্তর করতে পারি না, ব্যক্তিগত বা সর্বজনীন না?

আমি ভার্চুয়ালবক্সে আমার নিজের ছবিটি খেলতে এবং তৈরি করতে ব্যবহার করেছি, এবং এটি শেষ হওয়ার পরে, আমি অন্য যন্ত্রগুলিতে বাস্তব ব্যবহারের জন্য স্থাপন করার চেষ্টা করি।

যেহেতু এটি নিজস্ব ভিত্তিক ইমেজ (যেমন Red Hat Linux) এর উপর ভিত্তি করে, এটি Dockerfile থেকে পুনঃনির্মিত করা যাবে না।

আমি ব্যবহার করতে পারেন কি সহজ কমান্ড আছে? নাকি অন্য সমাধান?

মনে হচ্ছে সংরক্ষণ / রপ্তানি একইরকম উদ্দেশ্য অর্জন করতে পারে, দেখুন ডকারে সংরক্ষণ ও রপ্তানির মধ্যে পার্থক্য কী? , এবং আমি আমার ক্ষেত্রে save কমান্ড পছন্দ।


আপনাকে ডকার চিত্রটি একটি টার ফাইল হিসাবে সংরক্ষণ করতে হবে:

docker save -o <path for generated tar file> <image name>

তারপরে আপনার চিত্রটি একটি নতুন সিস্টেমে অনুলিপি করুন যেমন নিয়মিত ফাইল ট্রান্সফার সরঞ্জামগুলি যেমন cp বা scp । তারপরে আপনাকে ছবিটি ডকারে লোড করতে হবে:

docker load -i <path to image tar file>

PS: আপনি সব কমান্ড sudo প্রয়োজন হতে পারে।

সম্পাদন করুন: আপনি -o সহ ফাইলের নাম (শুধু ডিরেক্টরি নয়) যোগ করতে হবে, উদাহরণস্বরূপ:

docker save -o c:/myfile.tar centos:16

আপনি sshfs ব্যবহার করতে পারেন:

$ sshfs [email protected]:/<remote-path> <local-mount-path>
$ docker save <image-id> > <local-mount-path>/myImage.tar

আপনি দুটি রিমোট রেজিস্টার / রিপোজিটরির মধ্যে ডকার চিত্রগুলি কীভাবে সরাতে পারবেন। এটি ডকার সংস্করণ 1.10.2 এর সাথে কাজ করে, c3959b1 তৈরি করুন।

docker pull source-registry.com/myProject/myImageName:1.0.0
docker tag source-registry.com/myProject/myImageName:1.0.0 target-remote-registry.com/myProject/myImageName:1.0.0
docker push target-remote-registry.com/myProject/myImageName:1.0.0

আপনি যদি আপনার ছবিগুলিকে AWS ECS / ECR পরিষেবাতে স্থানান্তর করতে চান তবে এটি একটি সহজ পদ্ধতি।


আমি ট্যাগ সঙ্গে সব ছবি সরানো করতে চান।

```
OUT=$(docker images --format '{{.Repository}}:{{.Tag}}')
OUTPUT=($OUT)
docker save $(echo "${OUTPUT[*]}") -o /dir/images.tar
``` 

ব্যাখ্যা:

প্রথম OUT সব ট্যাগ পায় কিন্তু নতুন লাইন দিয়ে আলাদা। দ্বিতীয় OUTPUT একটি অ্যারে সব ট্যাগ পায়। তৃতীয় $(echo "${OUTPUT[*]}") docker save একক docker save কমান্ডের জন্য রাখে যাতে সমস্ত ছবি একক টার মধ্যে থাকে।

উপরন্তু, এই gzip ব্যবহার করে জিপ করা যাবে। লক্ষ্য, চালানো:

tar xvf images.tar.gz -O | docker load

-O বিকল্পটি docker load দ্বারা দখল করা যেতে পারে যা stdin উপর বিষয়বস্তু রাখে।


একটি ধারক ফাইল সিস্টেমের flattened এক্সপোর্ট জন্য, ব্যবহার করুন;

docker export CONTAINER_ID > my_container.tar

cat my_container.tar | docker import - ব্যবহার করুন cat my_container.tar | docker import - বলেন ইমেজ আমদানি।


কোনও ফাইল পাথ বা ভাগ করা NFS স্থানে একটি চিত্র সংরক্ষণ করতে নিম্নলিখিত উদাহরণটি দেখুন।

করছেন ইমেজ আইডি পান:

sudo docker images

বলুন আপনার আইডি "ম্যাট্রিক্স-ডেটা" দিয়ে একটি চিত্র আছে।

আইডি দিয়ে ছবিটি সংরক্ষণ করুন:

sudo docker save -o /home/matrix/matrix-data.tar matrix-data

কোন হোস্ট পাথ থেকে ইমেজ অনুলিপি করুন। এখন আপনার স্থানীয় ডকার ইনস্টলেশন ব্যবহার করে আমদানি করুন:

sudo docker load -i <path to copied image file>

চালান

docker images

হোস্ট ইমেজ একটি তালিকা দেখতে। আসুন বলুন আপনারা একটি ছবি আছে যাকে Awesomesauce বলা হয় । আপনার টার্মিনালে, cd ডিরেক্টরিটিতে যেখানে আপনি ছবিটি রপ্তানি করতে চান। এখন রান করুন:

docker save awesomesauce:latest > awesomesauce.tar

Tar ফাইলটি একটি থাম্ব ড্রাইভে বা যাই হোক না কেন অনুলিপি করুন এবং তারপরে এটি নতুন হোস্ট কম্পিউটারে অনুলিপি করুন।

এখন নতুন হোস্ট থেকে:

docker load < awesomesauce.tar

এখন একটি কফি আছে এবং Hacker News পড়ুন পড়ুন ...


প্রথমে ডকার চিত্রটি একটি জিপ ফাইলে সংরক্ষণ করুন:

docker save <docker image name> | gzip > <docker image name>.tar.gz

তারপর নিচের কমান্ডটি ব্যবহার করে ডকারে এক্সপোর্ট করা ছবিটি লোড করুন:

zcat <docker image name>.tar.gz | docker load

docker-push-ssh এই দৃশ্যকল্প জন্য শুধুমাত্র একটি কমান্ড লাইন উপযোগ।

এটি সার্ভারে একটি অস্থায়ী ব্যক্তিগত ডকার রেজিস্ট্রি সেট আপ করে, আপনার স্থানীয় হোস্ট থেকে একটি এসএসএইচ সুড়ঙ্গ স্থাপন করে, আপনার ছবিটি ধাক্কা দেয়, তারপরে নিজের পরে পরিষ্কার করে।

docker save উপর এই পদ্ধতির সুবিধা (বেশিরভাগ উত্তর লেখার সময় এই পদ্ধতিটি ব্যবহার করা হয়) কেবলমাত্র নতুন স্তরগুলি সার্ভারে push করা হয় যার ফলে খুব দ্রুত আপলোড হয়।

প্রায়ই dockerhub মত একটি মধ্যবর্তী রেজিস্ট্রি ব্যবহার করে অযৌক্তিক, এবং কষ্টকর।

https://github.com/coherenceapi/docker-push-ssh

ইনস্টল করুন:

pip install docker-push-ssh

উদাহরণ:

docker-push-ssh -i ~/my_ssh_key [email protected] my-docker-image

সবচেয়ে বড় সতর্কতা হল আপনি ডকরের অনিরাপদ_registries কনফিগারেশনে আপনার স্থানীয় হোস্ট ম্যানুয়ালি যুক্ত করতে হবে। একবার টুলটি চালান এবং এটি আপনাকে একটি তথ্যপূর্ণ ত্রুটি দেবে:

Error Pushing Image: Ensure localhost:5000 is added to your insecure registries.
More Details (OS X): https://.com/questions/32808215/where-to-set-the-insecure-registry-flag-on-mac-os

ম্যাক অপারেটিং সিস্টেমে '--insecure-রেজিস্ট্রি' পতাকা কোথায় স্থাপন করা উচিত?





docker