ඩිරෙක්ටරිය යටතේ බහාලුම් සොයා ගැනීමට මට හැකි විය /var/lib/docker/containers
, නමුත් මට රූප සොයාගත නොහැක.
යටතේ ඇති නාමාවලි සහ ගොනු /var/lib/docker
මොනවාද?
ඩිරෙක්ටරිය යටතේ බහාලුම් සොයා ගැනීමට මට හැකි විය /var/lib/docker/containers
, නමුත් මට රූප සොයාගත නොහැක.
යටතේ ඇති නාමාවලි සහ ගොනු /var/lib/docker
මොනවාද?
Answers:
ඩෝකර් ගබඩා කිරීම සඳහා භාවිතා කරන ධාවක/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 GB බැගින් රූප 2 ක් භාවිතා කරන අතර /var/lib
නාමාවලියක් නොමැත docker
.
මැක් යෙදුම සඳහා ඩෝකර් භාවිතා කරන විට, බහාලුම් පිහිටා ඇති වීඑම් තුළ ගබඩා කර ඇති බව පෙනේ:
~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
යාවත්කාලීන කිරීම (අනුග්රහය mmorin ):
2019 ජනවාරි 15 වන විට මෙම ගොනුව පමණක් ඇති බව පෙනේ:
~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw
එහි ඩෝකර් තැටිය සහ එහි ඇති සියලුම පින්තූර සහ බහාලුම් අඩංගු වේ.
ubuntu
, nginx
)ද, නැතහොත් සියලුම බහාලුම් සඳහා ස්ථානයද? මුල් ප්රශ්නය අසන්නේ රූප මිස බහාලුම් නොවේ ...
Docker for Mac
1.5 GB බැගින් රූප දෙකක් භාවිතා කරන අතර ~/Library/Containers/Data/com.docker.docker/Data
නාමාවලියක් නොමැති com.docker.driver.amd64-linux
අතර එකම විශාල ගොනුව vms/0/Docker.raw
3.6 GB සමඟ ඇත.
du -hd1 ~/Library/Containers/com.docker.docker/Data/
මෙය පැරණි ක්රමයකි, දැන් එය වෙනස් වී ඇත. 2019 වන විට මෙම පිළිතුර නොසලකා හරින්න
මැක් ඕඑස් එක්ස් හෝ වින්ඩෝස් හි විශේෂ අවස්ථාවෙහිදී, බූට් 2 ඩොකර් භාවිතා කරමින්, ඔබේ ඩෝකර් පින්තූර බූට් 2 ඩොකර් විසින් කළමනාකරණය කරන වර්චුවල් බොක්ස් වීඑම් තුළ ගබඩා කර ඇත.
මෙම VM සාමාන්ය වර්චුවල් බොක්ස් රූපවල ගබඩා වේ:
OS X: ~/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
මඟින් රූප ගබඩා කිරීමේ ස්ථානය දක්වන්නේ නැත (ඉහත මැක්-විශේෂිත පිළිතුර බලන්න).
හයිපර්-වී භාවිතා කරන අළුතින් නිකුත් කරන ලද 'ඩෝකර් ෆෝ වින්ඩෝස්' හි දත්ත ඩොකර් අතථ්ය දෘඩ තැටියේ පිහිටා ඇත:
C: ers පරිශීලකයින් \ පොදු \ ලේඛන \ හයිපර්-වී \ අතථ්ය දෘඩ තැටි \ MobyLinuxVM.vhdx
ඩොකර් / මොබිලිනක්ස්වීඑම් වෙත ප්රවේශ වීම සඳහා ඔබට 'හයිපර්-වී කළමනාකරු' විවෘත කළ හැකිය.
C:\ProgramData\docker\windowsfilter
මා වෙනුවෙන් රූප ගොනු දමයි . වැඩි විස්තර: stackoverflow.com/a/39971954/188740
පින්තූර ගබඩා කර ඇත /var/lib/docker/graph/<id>/layer
.
පින්තූර මව් රූපයට වඩා වෙනස් බව සලකන්න. මව් හැඳුනුම්පත රූපයේ පාර-දත්ත සමඟ ගබඩා කර ඇත /var/lib/docker/graph/<id>/json
.
ඔබ docker run
රූපයක් විට. AUFS විසින් සියලු ස්ථර භාවිතා කළ හැකි ගොනු පද්ධතියකට ඒකාබද්ධ කරයි.
උබුන්ටු මත ඔබට ධාවනය වන රූප සමඟ "සෙල්ලම්" කළ හැකිය
sudo baobab /var/lib/docker
ඇත්ත වශයෙන්ම, රූප ගබඩා කර ඇත්තේ ඇතුළත ය /var/lib/docker/aufs/diff
ඩෝකර් මෙවලම් පෙට්ටිය භාවිතා කරන අයෙකුට (එය ඩොකර් යන්ත්රය භාවිතා කරයි), මැක් ඕඑස් එක්ස් හි ඇරඹුම් 2 ඩොකර් සම්බන්ධ පිළිතුරු වලංගු නොවේ. ඩොකර්-මැෂින් වීඑම් "පෙරනිමි" ලෙස හැඳින්වෙන අතර එය /Users/<username>/.docker/machine/machines/default/
නාමාවලියෙහි පවතී .
දී Windows සඳහා Docker (දේශීය Windows) පෙරනිමි රුවනයකි ගබඩා දී ය:
> docker info
...
Docker Root Dir: C:\ProgramData\Docker
...
docker build
විධානය ක්රියාත්මක කළ අතර රූප ගොනුව යැයි මා සිතන ගොනුවක් මට නොපෙනේ. මම සමහර ෆෝල්ඩර සහ පෙළ ලිපිගොනු (උදා: service.txt) දකිමි. කුමන වර්ගයේ ගොනුවක් සහ කුමන ගොනු දිගුවක් සමඟ docker build
නිර්මාණය කරන්නේද?
ඔබ MAC සඳහා ඩොකර් භාවිතා කරන්නේ නම් (නොවේ 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 හි,
- ඩොකර් යනාදිය නවත්වන්න
- කාර්ය තීරු සෙවුම් කොටුවේ "හයිපර්-වී කළමනාකරු" ටයිප් කර එය ක්රියාත්මක කරන්න.
- වම් අත කවුළුව තුළ ඔබේ පරිගණකය තෝරන්න (පතල ඩෙස්ක්ටොප්-සීබීපී ** ලෙස හැඳින්වේ)
- නිවැරදි අතථ්ය යන්ත්රය මත දකුණු ක්ලික් කරන්න (පතල MobyLinuxVM ලෙස හැඳින්වේ)
- "අක්රිය කරන්න" තෝරන්න (එය ක්රියාත්මක වන්නේ නම්)
- එය මත නැවත දකුණු ක්ලික් කර "ගෙනයන්න" තෝරන්න
- විමසීම් අනුගමනය කරන්න
docker build
විධානය මඟින් සාදන ලද රූප සොයා ගැනීමට උත්සාහ කරමි . මම වින්ඩෝස් 10 පරිගණකයක සිටිමි. මම C: ers පරිශීලකයින් \ පොදු \ ලේඛන \ හයිපර්-වී \ අතථ්ය දෘඩ තැටි දෙස බලමි, නමුත් මා දකින සියල්ල MobyLinuxVM.vhdx පමණි. සත්ය රූප ගබඩා කර ඇත්තේ කොහේද?
ඩොකර් තවමත් වීඑම් එකක ධාවනය වන බව ඔබ මතකයේ තබා ගන්නේ නම්, පද්ධති මාර්ග වීඑම් වලට සාපේක්ෂව මිස මැක් ඔක්ස් පද්ධතියෙන් නොවේ. එය පවසන පරිදි සියල්ල VM ගොනුවක අඩංගු වේ:
/Users/MyUserName/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
මෙම වෙළුම් විකල්පය සමඟ ඇල්පයින් රූපය ධාවනය කිරීමට උත්සාහ කරන්න සහ ඔබට VM ධාරකය ලැයිස්තු ගත කළ හැකි ls විධානය:
docker run --rm -it -v /: / vm-root ඇල්පයින්: edge ls -l / vm-root
මෙයින් පසු උත්සාහ කරන්න:
docker run --rm -it -v /: / vm-root ඇල්පයින්: edge ls -l / vm-root / var / lib / docker
දැන්, ඔබට VM ධාරකයෙන් ඩොකර් ෆෝල්ඩරය ලැයිස්තු ගත කළ හැකිය
මම මැක් ඕඑස්එක්ස් හි ඩෝකර් සඳහා ඇරඹුම් 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
ගබඩා ධාවක ලෙස භාවිතා කිරීම නිසා මෙය සිදු වන බව සලකන්න .
පරිසරය: වින්ඩෝස් 10 ප්රෝ, ඩෝකර් ඩෙස්ක්ටොප් 2.0.3.0 දාරය
පද්ධති තැටියේ දකුණු-ක්ලික් ඩොකර් නිරූපකය, සැකසුම් තෝරන්න - උසස්:
තැටි රූප පිහිටීම (බ්රව්සරය හරහා සංස්කරණය කළ හැකිය):
C: ers පරිශීලකයින් \ පොදු \ ලේඛන \ හයිපර්-වී \ අතථ්ය දෘඩ තැටි \ DockerDesktop.vhdx
(එය එහි ඇත - ලේඛන නාමාවලිය සඟවා ඇත)
docker build
විධානය මඟින් නිර්මාණය කළ රූපයද ?
ෆෙඩෝරා හි, ඩෝකර් තිබේ නම් ගබඩා කිරීම සඳහා 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
...
එවැනි අවස්ථාවකදී, ගබඩාව වැඩි කිරීම සඳහා, ඔබට LVM විධාන රේඛා මෙවලම් හෝ බ්ලයිවට් වැනි අනුකූල කොටස් කළමණාකරුවන් භාවිතා කිරීමට සිදුවේ .
වින්ඩෝස් 2016 දී, ඩෝකර් (ඩොකර්එම්එස්එෆ්ප්රොයිඩර්) ඩොකර් රූට් යටතේ "වින්ඩෝස්ෆිල්ටර්" ෆෝල්ඩරය භාවිතා කරයි
>docker info
...
Storage Driver: windowsfilter
...
Docker Root Dir: C:\ProgramData\docker
...
ලිපිගොනු බාගත කිරීම සඳහා එය ඩොකර් රූට් යටතේ ඇති "ටීඑම්පී" ෆෝල්ඩරය භාවිතා කරන අතර බාගත කළ ගොනු "වින්ඩෝස්ෆිල්ටර්" ෆෝල්ඩරයට උපුටා ගැනීමෙන් පසුව එය මකා දමයි.
ඉහත පිළිතුරු භාවිතා කරමින් මැකෝස් පිළිබඳ ඩොකර් 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 රූපය ලේඛනයක." "ඔබගේ ඉදි රූපය" වන
මෙය තවමත් මට අමුතුයි, මන්ද එය දැන් ප්රශ්නයට මග පාදයි. මගේ යන්ත්රයේ දේශීය ඩොකර් රූප ලේඛනය කොහිද?
එසේ වුවද, මෙම තොරතුරු පිළිතුරක් ලෙස බෙදා ගැනීම වටී යැයි මම අනිවාර්යයෙන්ම සිතමි.
ස්ක්රිප්ටින් අරමුණු සඳහා යමෙකුට එය අවශ්ය නම්, මෙන්න එක්-පේළියේ විසඳුමකි.
PCRE සක්රීය කර ඇති POSIX කවචයේ 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: ).*')"
මෙම නාමාවලියෙහි අන්තර්ගතය ලැයිස්තුගත කරන්න.