A Docker-t széles körben elfogadták, és a gyártási alkalmazások futtatására és méretezésére használják. Ezenkívül felhasználható alkalmazások gyors indításához egyetlen Docker parancs végrehajtásával.
A vállalatok is egyre több erőfeszítést fektetnek a helyi és távoli Docker konténerek fejlesztésének javításába, ami rengeteg előnnyel jár.
A Docker konfigurációjával kapcsolatos alapvető információkat az alábbiak végrehajtásával szerezheti be:
$ docker info ... Storage Driver: overlay2 Docker Root Dir: /var/lib/docker ...
A kimenet információkat tartalmaz a tároló illesztőprogramjáról és a dokkoló gyökérkönyvtáráról.
A Docker képek és tárolók tárolási helye
A Docker-tároló hálózati beállításokból, kötetekből és képekből áll. A Docker fájlok helye az operációs rendszertől függ. Itt található a leggyakrabban használt operációs rendszerek áttekintése:
- Ubuntu:
/var/lib/docker/
- Fedora:
/var/lib/docker/
- Debian:
/var/lib/docker/
- Ablakok:
C:\ProgramData\DockerDesktop
- Mac operációs rendszer:
~/Library/Containers/com.docker.docker/Data/vms/0/
MacOS és Windows rendszerekben a Docker Linux konténereket futtat virtuális környezetben. Ezért van néhány további tudnivaló.
Docker Mac-hez
A Docker natív módon nem kompatibilis a macOS-szal, ezért a Hyperkit virtuális kép futtatására szolgál. Virtuális képadatai a következő helyen találhatók:
~/Library/Containers/com.docker.docker/Data/vms/0
A virtuális képen belül az elérési út az alapértelmezett Docker elérési út /var/lib/docker
.
Megvizsgálhatja a Docker gyökérkönyvtárát, ha létrehoz egy héjat a virtuális környezetben:
$ screen ~/Library/Containers/com.docker.docker/Data/vms/0/tty
Megölheti ezt a munkamenetet a Ctrl + a , majd a k és y megnyomásával .
Docker for Windows
Windows rendszeren a Docker kissé töredezett. Vannak olyan natív Windows-tárolók, amelyek hasonlóan működnek, mint a Linux-tárolók. A Linux-tárolókat minimális Hyper-V alapú virtuális környezetben futtatják.
A konfigurációt és a linuxos képek végrehajtására szolgáló virtuális képet az alapértelmezett Docker gyökérmappa menti.
C:\ProgramData\DockerDesktop
Ha rendszeres képeket néz meg, akkor olyan linux útvonalakat kap, mint:
$ docker inspect nginx ... "UpperDir": "/var/lib/docker/overlay2/585...9eb/diff" ...
A virtuális képhez a következőképpen csatlakozhat:
docker run -it --privileged --pid=host debian nsenter -t 1 -m -u -i sh
Ott eljuthat a hivatkozott helyre:
$ cd /var/lib/docker/overlay2/585...9eb/ $ ls -lah drwx------ 4 root root 4.0K Feb 6 06:56 . drwx------ 13 root root 4.0K Feb 6 09:17 .. drwxr-xr-x 3 root root 4.0K Feb 6 06:56 diff -rw-r--r-- 1 root root 26 Feb 6 06:56 link -rw-r--r-- 1 root root 57 Feb 6 06:56 lower drwx------ 2 root root 4.0K Feb 6 06:56 work
A Docker gyökérmappa belső felépítése
Belül /var/lib/docker
különböző információkat tárolnak. Például a tárolók, kötetek, buildek, hálózatok és fürtök adatait.
$ ls -la /var/lib/docker total 152 drwx--x--x 15 root root 4096 Feb 1 13:09 . drwxr-xr-x 13 root root 4096 Aug 1 2019 .. drwx------ 2 root root 4096 May 20 2019 builder drwx------ 4 root root 4096 May 20 2019 buildkit drwx------ 3 root root 4096 May 20 2019 containerd drwx------ 2 root root 12288 Feb 3 19:35 containers drwx------ 3 root root 4096 May 20 2019 image drwxr-x--- 3 root root 4096 May 20 2019 network drwx------ 6 root root 77824 Feb 3 19:37 overlay2 drwx------ 4 root root 4096 May 20 2019 plugins drwx------ 2 root root 4096 Feb 1 13:09 runtimes drwx------ 2 root root 4096 May 20 2019 swarm drwx------ 2 root root 4096 Feb 3 19:37 tmp drwx------ 2 root root 4096 May 20 2019 trust drwx------ 15 root root 12288 Feb 3 19:35 volumes
Docker képek
A legnehezebb tartalom általában kép. Ha az alapértelmezett tárolóillesztő-overlay2-t használja, akkor a Docker-képeket a rendszer tárolja /var/lib/docker/overlay2
. Itt különféle fájlokat találhat, amelyek a Docker-kép csak olvasható rétegeit képviselik, és annak tetejét, amely tartalmazza a módosításokat.
Fedezzük fel a tartalmat egy példával:
$ docker image pull nginx $ docker image inspect nginx [ { "Id": "sha256:207...6e1", "RepoTags": [ "nginx:latest" ], "RepoDigests": [ "[email protected]:ad5...c6f" ], "Parent": "", ... "Architecture": "amd64", "Os": "linux", "Size": 126698063, "VirtualSize": 126698063, "GraphDriver": { "Data": { "LowerDir": "/var/lib/docker/overlay2/585...9eb/diff: /var/lib/docker/overlay2/585...9eb/diff", "MergedDir": "/var/lib/docker/overlay2/585...9eb/merged", "UpperDir": "/var/lib/docker/overlay2/585...9eb/diff", "WorkDir": "/var/lib/docker/overlay2/585...9eb/work" }, ...
A LowerDir a kép csak olvasható rétegeit tartalmazza. A változásokat ábrázoló írás-olvasási réteg az UpperDir része . Esetemben az NGINX UpperDir mappa a naplófájlokat tartalmazza:
$ ls -la /var/lib/docker/overlay2/585...9eb/diff total 8 drwxr-xr-x 2 root root 4096 Feb 2 08:06 . drwxr-xr-x 3 root root 4096 Feb 2 08:06 .. lrwxrwxrwx 1 root root 11 Feb 2 08:06 access.log -> /dev/stdout lrwxrwxrwx 1 root root 11 Feb 2 08:06 error.log -> /dev/stderr
A MergedDir az UpperDir és az LowerDir eredményét jelenti , amelyet a Docker használ a tároló futtatásához. A WorkDir egy belső könyvtár az overlay2 számára, és üresnek kell lennie.
Docker kötetek
Lehetőség van tartós tároló hozzáadására a tárolókhoz, hogy az adatok a tároló létezésénél hosszabb ideig maradjanak, vagy hogy megoszthassa a kötetet a gazdagéppel vagy más tárolókkal. A konténer kötetből indítható a -v opció használatával:
$ docker run --name nginx_container -v /var/log nginx
Információt szerezhetünk a csatlakoztatott kötet helyéről:
$ docker inspect nginx_container ... "Mounts": [ { "Type": "volume", "Name": "1e4...d9c", "Source": "/var/lib/docker/volumes/1e4...d9c/_data", "Destination": "/var/log", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ], ...
A hivatkozott könyvtár /var/log
az NGINX tároló helyéről származó fájlokat tartalmazza.
$ ls -lah /var/lib/docker/volumes/1e4...d9c/_data total 88 drwxr-xr-x 4 root root 4.0K Feb 3 21:02 . drwxr-xr-x 3 root root 4.0K Feb 3 21:02 .. drwxr-xr-x 2 root root 4.0K Feb 3 21:02 apt -rw-rw---- 1 root 43 0 Jan 30 00:00 btmp -rw-r--r-- 1 root root 34.7K Feb 2 08:06 dpkg.log -rw-r--r-- 1 root root 3.2K Feb 2 08:06 faillog -rw-rw-r-- 1 root 43 29.1K Feb 2 08:06 lastlog drwxr-xr-x 2 root root 4.0K Feb 3 21:02 nginx -rw-rw-r-- 1 root 43 0 Jan 30 00:00 w
Tisztítsa meg a Docker által használt helyet
Javasoljuk, hogy a Docker paranccsal tisztítsa meg a fel nem használt tárolókat. A tároló, a hálózatok, a képek és a build gyorsítótár az alábbiak végrehajtásával tisztítható meg:
$ docker system prune -a
Ezenkívül a fel nem használt kötetek eltávolításával a következőket is végrehajthatja:
$ docker volumes prune
Összegzés
A Docker sok ember környezetének és eszközeinek fontos része. Néha Docker kissé varázslatnak érzi magát, ha nagyon okosan megoldja a kérdéseket, anélkül, hogy elmondaná a felhasználónak, hogyan történik a színfalak mögött. Ennek ellenére a Docker egy olyan rendszeres eszköz, amely nehéz alkatrészeit olyan helyeken tárolja, amelyek nyithatók és cserélhetők.
Sometimes, storage can fill up quickly. Therefore, it’s useful to inspect its root folder, but it is not recommended to delete or change any files manually. Instead, the prune commands can be used to free up disk space.
I hope you enjoyed the article. If you like it and feel the need for a round of applause, follow me on Twitter.
I am a co-founder of our revolutionary journey platform called Explore The World. We are a young startup located in Dresden, Germany and will target the German market first. Reach out to me if you have feedback and questions about any topic.
Happy Docker exploring :)
References
- Docker storagediver documentation
//docs.docker.com/storage/storagedriver/
- Documentation Overlay filesystem
//www.kernel.org/doc/Documentation/filesystems/overlayfs.txt