ඩිරෙක්ටරිය යටතේ බහාලුම් සොයා ගැනීමට මට හැකි විය /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 Mac1.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 Mac1.5 GB බැගින් රූප දෙකක් භාවිතා කරන අතර ~/Library/Containers/Data/com.docker.docker/Dataනාමාවලියක් නොමැති com.docker.driver.amd64-linuxඅතර එකම විශාල ගොනුව vms/0/Docker.raw3.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: ).*')"මෙම නාමාවලියෙහි අන්තර්ගතය ලැයිස්තුගත කරන්න.