호스트 시스템에서 Docker 이미지는 어디에 저장됩니까?

4427 단어 linuxdocker
images , containers , 볼륨 등과 같은 Docker 개체를 만들 때 이러한 모든 개체는 로컬 시스템의 디렉터리에 저장됩니다. 기본적으로 모든 Docker 개체는 다음 디렉터리에 저장됩니다.
/var/lib/docker/storage-driver

Moreover, the contents stored inside the /var/lib/docker path depend on the storage driver that you are using as well. Let’s first understand the docker storage drivers in short.

도커 스토리지 드라이버

In an ideal case, very little amount of data gets written onto the writable layer of a Docker container. And we use volumes in Docker to write such data. But there are some workloads that require us to be able to use the container’s writable layer to write data and this is exactly where storage drivers in Docker come in.

Docker uses a pluggable architecture to support various different storage drivers. It totally depends upon these storage drivers that how the Docker images and containers are managed and stored in our Docker host.

The different types of storage drivers supported by Docker are - overlay2, aufs, devicemapper, btrfs, zfs, vfs. The current default Docker Storage driver is overlay2.

To check the default storage driver, you can use the following command.

$ docker info

You can set the storage driver in two different ways.

You can either use the -s or --storage-driver option along with the Docker run command. Or you can edit the /etc/docker/daemon.json file and include the following lines.

{storge-driver:"aufs"}

Now that we have understood the basics of storage drivers in Docker, let’s see the different behaviors of different drivers when it comes to storing Docker objects in local machines.

Docker 이미지 및 기타 개체의 저장

The driver-specific storage for Docker image contents will be in the path - 

/var/lib/docker/{driver-name}

The metadata about the images is located in the JSON and layersize files in the following directory.

/var/lib/docker/graph/id

In the above paths, the driver-name is the default storage driver used by Docker in your machine and the id refers to the image ID.

If your host machine uses aufs storage driver for Docker, then you can look for image file contents in the following directory.

/var/lib/docker/aufs/diff/id

The directory mentioned below contains the local image information in a JSON file. This information can be retrieved using the Docker images command in the command line.

/var/lib/docker/repositories-aufs

In the case of the devicemapper storage driver, the system stores the image information in the following directory.

           <pre>/var/lib/docker/devicemapper/devicemapper/data</pre>

이미지와 관련된 메타데이터는 경로에서 찾을 수 있습니다.

                <pre>/var/lib/docker/devicemapper/devicemapper/metadata</pre>

이러한 파일은 씬 프로비저닝된 스파스 파일이기 때문에 보이는 것처럼 그렇게 크지 않다는 점에 유의하는 것이 중요합니다.

Virtual Machine 을 통해 Mac 내에서 Docker를 사용하는 경우 다음 디렉터리에서 모든 컨테이너 및 이미지 정보를 찾을 수 있습니다.

                <pre>~/Library/Containers/com.docker.docker/Data/vms/0/Docker.raw</pre>

hyper-v를 사용하는 새Windows 10에서는 다음 경로에서 Docker virtual 하드 디스크의 데이터를 찾을 수 있습니다.
C:\Users\Public\Documents\Hyper-V\Virtual hard disks\MobyLinuxVM.vhdx


마무리!



요약하면 Docker 스토리지 드라이버는 이미지, 컨테이너, 볼륨 등을 포함한 모든 Docker 객체와 관련된 기타 모든 정보는 물론 메타데이터의 저장 위치를 ​​결정하는 데 큰 역할을 합니다.

그러나 기본 디렉토리 경로는/var/lib/docker이고 후속 디렉토리는 스토리지 드라이버 유형에 따라 다릅니다. 또한 운영 체제의 유형에 따라 위치도 다양합니다.

좋은 웹페이지 즐겨찾기