আমি ডিরেক্টরিতে থাকা পাত্রগুলি সন্ধান করতে সক্ষম হয়েছি /var/lib/docker/containers
, তবে আমি চিত্রগুলি খুঁজে পাই না।
অধীনে ডিরেক্টরি এবং ফাইল কি /var/lib/docker
?
আমি ডিরেক্টরিতে থাকা পাত্রগুলি সন্ধান করতে সক্ষম হয়েছি /var/lib/docker/containers
, তবে আমি চিত্রগুলি খুঁজে পাই না।
অধীনে ডিরেক্টরি এবং ফাইল কি /var/lib/docker
?
উত্তর:
/var/lib/docker
ডিরেক্টরিটিতে ডক স্টোরেজটির জন্য ব্যবহার করা চালকের উপর নির্ভর করে ডিরেক্টরিটির বিষয়বস্তু পরিবর্তিত হয় ।
ডিফল্টরূপে এই হতে হবে aufs
কিন্তু ফিরে পড়তে পারে overlay
, overlay2
, btrfs
, devicemapper
বা zfs
আপনার কার্নেল সমর্থন উপর নির্ভর করে। বেশিরভাগ জায়গায় এটি হবে aufs
তবে রেডহ্যাটস এর সাথে চলেছিলdevicemapper
।
আপনি নিজে -s
বা--storage-driver=
স্টোর ড্রাইভারটি ডকার ডেমোনে বিকল্প বা বিকল্পের সাহায্যে সেট করতে পারেন ।
/var/lib/docker/{driver-name}
চিত্রগুলির বিষয়বস্তুর জন্য ড্রাইভার নির্দিষ্ট স্টোরেজ ধারণ করবে। /var/lib/docker/graph/<id>
এখন কেবলমাত্র ফাইল json
এবং layersize
ফাইলগুলিতে চিত্র সম্পর্কে মেটাডেটা রয়েছে ।এর ক্ষেত্রে aufs
:
/var/lib/docker/aufs/diff/<id>
ছবিগুলির ফাইল সামগ্রী রয়েছে।/var/lib/docker/repositories-aufs
স্থানীয় চিত্র সম্পর্কিত তথ্য সম্বলিত একটি JSON ফাইল। এটি কমান্ডের সাহায্যে দেখা যায় docker images
।এর ক্ষেত্রে devicemapper
:
/var/lib/docker/devicemapper/devicemapper/data
ইমেজ সঞ্চয়/var/lib/docker/devicemapper/devicemapper/metadata
মেটাডেটাdocker info
প্রকৃত অবস্থানটি ব্যবহার করুন এবং এটি সন্ধান করুন ।
Docker for Mac
প্রতি 1.5 টি জিবি 2 টি চিত্র ব্যবহার করছি এবং /var/lib
কোনও ডিরেক্টরি নেই docker
।
ম্যাক অ্যাপ্লিকেশনটির জন্য ডকার ব্যবহার করার সময়, প্রদর্শিত হবে যে পাত্রে অবস্থিত ভিএম এর মধ্যে সংরক্ষণ করা হয়েছে:
~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
আপডেট ( মিমোরিনের সৌজন্যে ):
15 জানুয়ারী 2019 অনুসারে কেবল এই ফাইলটি রয়েছে:
~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw
এতে ডকার ডিস্ক এবং এর মধ্যে থাকা সমস্ত চিত্র এবং ধারক রয়েছে।
ubuntu
, nginx
), অথবা এই সব পাত্রে জন্য অবস্থান কোথায়? মূল প্রশ্নটি পাত্রে নয়, চিত্রগুলির জন্য জিজ্ঞাসা করছে ...
Docker for Mac
প্রতিটি ১.৫ গিগাবাইটের দুটি চিত্র ব্যবহার করছি এবং ~/Library/Containers/Data/com.docker.docker/Data
এর কোনও ডিরেক্টরি নেই com.docker.driver.amd64-linux
এবং একমাত্র বড় ফাইলটি vms/0/Docker.raw
3.6 জিবি রয়েছে with
du -hd1 ~/Library/Containers/com.docker.docker/Data/
এটি ছিল পুরানো পদ্ধতি, এখন এটি পরিবর্তিত হয়েছে। 2019 এর হিসাবে এই উত্তরটিকে উপেক্ষা করুন
ম্যাক ওএস এক্স বা উইন্ডোজের বিশেষ ক্ষেত্রে, বুট 2 ডকার ব্যবহার করে, আপনার ডকার চিত্রগুলি বুট 2 ডকার দ্বারা পরিচালিত ভার্চুয়ালবক্স ভিএম এর মধ্যে সংরক্ষণ করা হয়।
এই ভিএম ভার্চুয়ালবক্স চিত্রগুলির স্বাভাবিক স্থানে সংরক্ষণ করা হবে:
ওএস এক্স: ~/VirtualBox VMs/boot2docker-vm
উইন্ডোজ: %USERPROFILE%/VirtualBox VMs/boot2docker-vm
আপনি এটি চালিয়ে পুনরায় সেট করতে পারেন (সতর্কতা: এটি আপনার নির্মিত এবং ডাউনলোড করা সমস্ত চিত্র ধ্বংস করে দেবে):
boot2docker down
boot2docker destroy
boot2docker init
boot2docker up
এটি বিশেষত কার্যকর যদি আপনি দরকারী --rm বিকল্পগুলি ব্যতীত বিল্ড নির্মাণ / ডিবাগ করার সময় অনেকগুলি মধ্যবর্তী চিত্র রাখেন, আমি এখানে রেফারেন্সের জন্য তাদের উদ্ধৃতি দিয়েছি: ব্যবহার করুন:
docker build -t webapp --rm=true --force-rm=true .
পরিবর্তে:
docker build -t webapp .
%USERPROFILE%\.docker\machine\machines
C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx
প্রকৃতপক্ষে, ডকারের চিত্রগুলি দুটি ফাইলে সংরক্ষণ করা হয় নিম্নলিখিত কমান্ডের দ্বারা দেখানো হয়েছে
$ docker info
ফাইল তথ্য:
/var/lib/docker/devicemapper/devicemapper/data
মেটাডেটা ফাইল:
/var/lib/docker/devicemapper/devicemapper/metadata
docker info
খুব কার্যকর, তবে আউটপুট Docker Root Dir: /var/lib/docker
চিত্র স্টোরেজ অবস্থানটি নির্দেশ করে না (উপরে ম্যাক-নির্দিষ্ট উত্তর দেখুন)।
হাইপার-ভি ব্যবহার করে সদ্য প্রকাশিত 'উইন্ডোজের জন্য ডকার'-তে, ডকার ভার্চুয়াল হার্ড ডিস্কে ডেটা অবস্থিত:
সি: \ ব্যবহারকারীগণ \ সর্বজনীন \ নথিগুলি er হাইপার-ভি \ ভার্চুয়াল হার্ড ডিস্কগুলি ob মবি লিনাক্সভিএম.ভিএইচডিএক্স
ডকার / মুবিলিনাক্সভিএম অ্যাক্সেসের জন্য আপনি 'হাইপার-ভি ম্যানেজার' খুলতে পারেন।
C:\ProgramData\docker\windowsfilter
আমার জন্য ইমেজ ফাইল রাখে । আরও তথ্য: স্ট্যাকওভারফ্লো.com
ছবিগুলি সংরক্ষণ করা হয় /var/lib/docker/graph/<id>/layer
।
নোট করুন যে চিত্রগুলি পিতামাতার চিত্রের থেকে পৃথক। প্যারেন্ট আইডিটি চিত্রের মেটাডেটা সহ সঞ্চিত থাকে /var/lib/docker/graph/<id>/json
।
আপনি যখন docker run
একটি ইমেজ। এটিএস ব্যবহারযোগ্য ফাইল সিস্টেমে সমস্ত স্তরকে 'একত্রিত' করবে।
উবুন্টুতে আপনি চিত্রগুলি চলমান দিয়ে "খেলতে" পারেন
sudo baobab /var/lib/docker
আসলে, চিত্রগুলি এর মধ্যে সঞ্চিত থাকে /var/lib/docker/aufs/diff
যে কেউ ডকার টুলবক্স ব্যবহার করছেন (যা ডকার-মেশিন ব্যবহার করে) ম্যাক ওএস এক্স-এ বুট 2 ডকার সম্পর্কিত উত্তর বৈধ নয়। ডকার-মেশিন ভিএমকে "ডিফল্ট" বলা হয় এবং এটি /Users/<username>/.docker/machine/machines/default/
ডিরেক্টরিতে বিদ্যমান ।
ইন Windows এর জন্য Docker (নেটিভ উইন্ডোজ) ডিফল্ট ধারক স্টোরেজ এ আছে:
> docker info
...
Docker Root Dir: C:\ProgramData\Docker
...
docker build
কমান্ডটি চালিয়েছি এবং আমি কোনও ফাইল দেখি না যা আমার মনে হয় ইমেজ ফাইল। আমি কিছু ফোল্ডার এবং কিছু পাঠ্য ফাইল (উদাহরণস্বরূপ service.txt) দেখতে পাচ্ছি। কোন ধরণের ফাইল এবং কোন ফাইল এক্সটেনশন docker build
তৈরি করে?
আপনি যদি ম্যাকের জন্য ডকার ব্যবহার করছেন (না boot2docker
) তবে অবস্থানটি/Users/<</>UserName></>/Library/Containers/com.docker.docker/Data/
jasper@~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux $ ls -lh | grep Docker -rw-r--r--@ 1 jasper staff 6.3G May 25 19:20 Docker.qcow2
আমি চিত্রটি পেয়েছি। তবে এটি পাত্রে নয়। তাদের এই ডেটা ডিরেক্টরিতে সত্যিই দেখুন না ..
এখানে যেমন উত্তর দেওয়া আছে , আপনি যদি ম্যাকে থাকেন তবে এটি অবস্থিত
/Users/MyUserName/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
হাইপার-ভি সহ উইন্ডোজে ত্রিস্তানের জবাব প্রসারিত করে আপনি ম্যাথিউইজম্যান থেকে এই পদক্ষেপগুলি সহ চিত্রটি সরাতে পারেন :
উইন্ডোজ 10 এ,
- ডকার ইত্যাদি বন্ধ করুন
- টাস্ক-বার অনুসন্ধান বাক্সে "হাইপার-ভি ম্যানেজার" টাইপ করুন এবং এটি চালান।
- বাম হাতের প্যানেতে আপনার পিসি নির্বাচন করুন (আমার নাম ডেস্কটপ-সিবিপি ** বলা হয়)
- সঠিক ভার্চুয়াল মেশিনে ডান ক্লিক করুন (খনিটিকে মোবিএলিনক্সভিএম বলা হয়)
- "বন্ধ করুন" নির্বাচন করুন (এটি চলমান থাকলে)
- এটিতে আবার ডান ক্লিক করুন এবং "সরান" নির্বাচন করুন
- অনুরোধগুলি অনুসরণ করুন
docker build
কমান্ড দ্বারা নির্মিত চিত্রগুলি সন্ধান করার চেষ্টা করছি । আমি একটি উইন্ডোজ 10 কম্পিউটারে আছি। আমি সি: \ ব্যবহারকারীদের \ পাবলিক \ ডকুমেন্টস \ হাইপার-ভি \ ভার্চুয়াল হার্ড ডিস্কগুলি দেখছি তবে আমি যা দেখছি তা সবই মবিলিনাক্সভিএম.ভিএইচডিএক্স। আসল চিত্রগুলি কোথায় সংরক্ষণ করা হয়?
আপনি যদি মনে রাখেন যে ডকার এখনও একটি ভিএম-তে চলছে তবে সিস্টেমের পাথগুলি ভিএম এর সাথে সম্পর্কিত এবং ম্যাক ওক্স সিস্টেম থেকে নয়। যেমন এটি বলে যে সমস্ত একটি ভিএম ফাইলের মধ্যে রয়েছে:
/Users/MyUserName/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
এই ভলিউম বিকল্প এবং আপনি ভিএম হোস্টকে তালিকাভুক্ত করতে সক্ষম ls কমান্ড দিয়ে আলপাইন চিত্র চালানোর চেষ্টা করুন:
ডকার রান --rm -it -v /: / ভিএম-রুট আলপাইন: প্রান্ত ls -l / vm- রুট
এর পরে শুধু চেষ্টা করুন:
ডকার রান --rm -it -v /: / ভিএম-রুট আলপাইন: প্রান্ত ls -l / vm- রুট / var / lib / ডকার
এখন, আপনি ভিএম হোস্ট থেকে ডকার ফোল্ডারটি তালিকাভুক্ত করতে সক্ষম
আমি ম্যাক ওএসএক্সে ডকারের জন্য বুট 2 ডকার ব্যবহার করি, সুতরাং চিত্রগুলি স্টোরের মধ্যে সংরক্ষণ করা হয় /Users/<USERNAME>/VirtualBox VMs/boot2docker-vm/boot2docker-vm.vmdk
।
আমি কেবল উবুন্টু ব্যবহারকারীদের জন্য এই প্রশ্নের উত্তর দিতে পারি:
কমান্ডটি চালানোর সময় ডকারের মূল ডিরেক্টরিটি পাওয়া যাবে docker info
এই লাইনে ডকার ডিরেক্টরিটি দেওয়া হবে: " Docker Root Dir: /var/lib/docker
"
ডকার চিত্র সম্পর্কে, তারা ডকার ডিরেক্টরিতে সংরক্ষণ করা হয়:
/var/lib/docker/aufs/diff/
মনে রাখবেন এই জিনিসগুলি ডকারের সমস্ত সংস্করণে এক নয়। বর্তমানে, আমি ব্যবহার করছি 1.12.3।
docker info
সিস্টেম-ব্যাপী তথ্য প্রদর্শন করতে কমান্ডটি ব্যবহার করুন এবং অবস্থানটি পৃথক হতে পারে।
ব্যবহৃত স্টোরেজ ড্রাইভারের উপর নির্ভর করে অতিরিক্ত তথ্য প্রদর্শিত হতে পারে যেমন পুলের নাম, ডেটা ফাইল, মেটাডেটা ফাইল, ব্যবহৃত ডেটা স্পেস, মোট ডেটা স্পেস, ব্যবহৃত মেটাডেটা স্পেস এবং মোট মেটাডেটা স্পেস।
ডেটা ফাইলটি যেখানে চিত্রগুলি সংরক্ষণ করা হয় এবং মেটাডেটা ফাইল সেখানে সেই চিত্রগুলির সম্পর্কিত মেটা ডেটা সংরক্ষণ করা হয়। প্রথমবারের জন্য চালানো হলে ডকার যখন
/var/lib/docker
মাউন্ট করা আছে সেখানে ভলিউমের উপলব্ধ স্থান থেকে একটি নির্দিষ্ট পরিমাণের ডেটা স্পেস এবং মেটা ডেটা স্পেস বরাদ্দ করে ।
এখানে উবুন্টুর উদাহরণ ( রুট ডির পরীক্ষা করুন ):
$ docker info
...
Server Version: 18.06.1-ce
Storage Driver: aufs
Root Dir: /var/snap/docker/common/var-lib-docker/aufs
...
Docker Root Dir: /var/snap/docker/common/var-lib-docker
...
এবং ট্র্যাভিস সিআই-এর উদাহরণ এখানে রয়েছে ( ডকার রুট ডিরি দেখুন ):
$ docker info
Server Version: 17.09.0-ce
Storage Driver: overlay2
Backing Filesystem: extfs
...
Docker Root Dir: /var/lib/docker
...
আপনি --format
কোনও একক ফাইলে সেই তথ্যটি বের করতে প্যারামিটার ব্যবহার করতে পারেন , যেমন
$ docker info --format '{{.DriverStatus}}'
[[Root Dir /var/snap/docker/common/var-lib-docker/aufs] [Backing Filesystem extfs] [Dirs 265] [Dirperm1 Supported true]]
বা:
$ docker info --format '{{json .DriverStatus}}'
[["Root Dir","/var/snap/docker/common/var-lib-docker/aufs"],["Backing Filesystem","extfs"],["Dirs","265"],["Dirperm1 Supported","true"]]
ভিতরে ডকার ফোল্ডারটি পরীক্ষা করুন /var/lib
ছবিগুলি নীচের অবস্থানে সংরক্ষণ করা হয়:
/var/lib/docker/image/overlay2/imagedb/content
/var/lib/docker/image/overlay2/
। আপনার ডকার ইঞ্জিন overlay2
স্টোরেজ ড্রাইভার হিসাবে ব্যবহার করছে এই কারণে এটিও লক্ষ্য করুন the
পরিবেশ: উইন্ডোজ 10 প্রো, ডকার ডেস্কটপ 2.0.3.0 প্রান্ত
সিস্টেম ট্রেতে ডاک-ক্লিক ডকার আইকন, সেটিংস নির্বাচন করুন - উন্নত:
ডিস্ক চিত্রের অবস্থান (ব্রাউজারের মাধ্যমে সম্পাদনাযোগ্য):
সি: \ ব্যবহারকারীগণ \ সর্বজনীন \ নথিগুলি er হাইপার-ভি \ ভার্চুয়াল হার্ড ডিস্কগুলি ock ডকারডেস্কটপ.ভিএইচডিএক্স
(এটি সেখানে রয়েছে - নথির ডিরেক্টরিটি গোপন রয়েছে)
docker build
কমান্ড দ্বারা নির্মিত ?
ফেডোরা তারিখে, Docker ব্যবহার LVM- র যদি পাওয়া যায় সঞ্চয়ের জন্য। আমার সিস্টেম docker info
শোতে:
Storage Driver: devicemapper
Pool Name: vg01-docker--pool
Pool Blocksize: 524.3 kB
Base Device Size: 10.74 GB
Backing Filesystem: xfs
Data file:
Metadata file:
Data Space Used: 9.622 GB
...
সেক্ষেত্রে স্টোরেজ বাড়ানোর জন্য আপনাকে এলভিএম কমান্ড লাইন সরঞ্জাম বা ব্লাইভেটের মতো সামঞ্জস্যপূর্ণ পার্টিশন ম্যানেজার ব্যবহার করতে হবে ।
উইন্ডোজ 2016-এ, ডকার (ডকারমসফটপ্রোভিডার) ডকার রুটের অধীনে "উইন্ডোজফিল্টার" ফোল্ডারটি ব্যবহার করে
>docker info
...
Storage Driver: windowsfilter
...
Docker Root Dir: C:\ProgramData\docker
...
ফাইলগুলি ডাউনলোড করার জন্য এটি ডকারের মূলের নীচে "tmp" ফোল্ডার ব্যবহার করে এবং ডাউনলোড করা ফাইলগুলি "উইন্ডোজফিল্টার" ফোল্ডারে সরানোর পরে ফাইলগুলি মুছে দেয়।
আমি উপরের উত্তরগুলি ব্যবহার করে ম্যাকোজে ডকার সংস্করণ 18.09 দিয়ে সমাধান করতে পারিনি এবং আবার চেষ্টা করেছি।
আমার পক্ষে একমাত্র আসল সমাধানটি ছিল এই docker-compose.yml
কনফিগারেশনটি ব্যবহার করা:
version: '3.7'
...
services:
demo-service:
volumes:
- data-volume:/var/tmp/container-volume
volumes:
data-volume:
driver: local
driver_opts:
type: none
o: bind
device: /tmp/host-volume
লঞ্চ করার পরে docker-compose up
অবশেষে আমি /tmp/host-volume
পাত্রে থেকেই ম্যাকো থেকে রচনামূলক ভলিউম হিসাবে ভাগ করেছি:
> docker exec -it 1234 /bin/bash
bash-4.4$ df
Filesystem 1K-blocks Used Available Use% Mounted on
...
osxfs 488347692 464780044 21836472 96% /var/tmp/container-volume
আশা করি এটি অন্যকেও সহায়তা করবে।
মতে Docker শুরু করার নির্দেশিকা "আপনার নির্মিত ছবি" "আপনার মেশিনের স্থানীয় Docker ইমেজ রেজিস্ট্রি হবে।" হয়
এটি এখনও আমার কাছে অদ্ভুত, কারণ এখন এটি প্রশ্নকে বাড়ে। আমার মেশিনের স্থানীয় ডকার চিত্রের রেজিস্ট্রি কোথায়?
তবুও, আমি অবশ্যই এই তথ্যটি উত্তর হিসাবে ভাগ করে নেওয়ার মতো মনে করি।
স্ক্রিপ্টিংয়ের জন্য কারও যদি এটির প্রয়োজন হয় তবে এখানে একটি লাইন সমাধান is
পসিক্স শেল-এ, পিসিআরই সক্ষম করে দিয়ে grep
চেষ্টা করুন:
DOCKER_ROOT_DIR="$(docker info 2>&1 | grep -oP '(?<=^Docker Root Dir: ).*')"
পাওয়ারশেলে:
$DOCKER_ROOT_DIR="$(docker info 2>&1 | foreach {if($_ -match "Docker Root Dir"){$_.TrimStart("Docker Root Dir: ")}})"
দ্রষ্টব্য, যখন উইন্ডোজ 10 এ (হিসাবে হিসাবে 10.0.18999.1
), ডিফল্ট কনফিগারেশনে, এটি ফিরে আসে:
C:\ProgramData\Docker
"উইন্ডোজ পাত্রে" মোডে/var/lib/docker
, "লিনাক্স পাত্রে" মোডেDOCKER_ROOT_DIR="$(sudo docker info 2>&1 | grep -oP '(?<=Data loop file: ).*')"
হয়েছিল তবে শেষ পর্যন্ত এটি ফাইল নয় ডিরেক্টরি নয়
sudo ls "$(docker info 2>&1 | grep -oP '(?<=^Docker Root Dir: ).*')"
এই ডিরেক্টরিটির বিষয়বস্তু তালিকাভুক্ত করুন।