Docker는 애플리케이션을 구축, 게시 및 실행하는 데 사용할 수 있는 오픈 소스 컨테이너 기술입니다. Docker 이미지를 사용하면 사용자는 사전 구축된 애플리케이션이나 컨테이너 환경을 간단하고 빠르게 다운로드하고 설치할 수 있습니다.
Docker 이미지는 여러 레이어(Layer)로 구성되어 있으며 각 레이어에는 파일 시스템의 스냅샷이 포함되어 있습니다. 사용자가 Docker 이미지를 가져오면 실제로 Docker 레지스트리에서 이미지의 모든 레이어를 가져오고 이를 결합하여 완전한 Docker 이미지를 구축합니다.
그렇다면 Docker 이미지의 로컬 저장 위치는 어디인가요? 이번 글에서는 이에 대해 자세히 소개하겠습니다.
먼저 현재 로컬 Docker 이미지 목록을 확인해야 합니다. 터미널에 다음 명령을 입력하세요.
docker images
실행 후 이미지 ID, 이미지 이름, 이미지 레이블, 이미지 크기 및 기타 정보를 포함하여 머신의 모든 Docker 이미지 목록이 나열됩니다. 아래 그림과 같이:
위 그림에서 볼 수 있듯이 각 이미지에는 고유 ID, 이름 및 일부 태그(버전이라고도 함)가 있습니다. 그 중 REPOSITORY 필드는 이미지의 이름을 나타내고, TAG 필드는 이미지의 라벨을 나타내며, IMAGE ID 필드는 이미지의 고유 식별자를 나타낸다.
Docker에서는 각 이미지가 여러 레이어(Layer)로 구성되어 있습니다. 따라서 사용자가 Docker 이미지를 다운로드하거나 빌드하면 이미지의 모든 레이어가 실제로 로컬 저장소에 다운로드됩니다.
Linux 시스템에서 Docker 이미지는 실제로 /var/lib/docker
디렉터리에 저장됩니다. 터미널에 다음 명령을 입력하세요. /var/lib/docker
目录下的。在终端输入下面命令:
sudo ls -l /var/lib/docker/
执行后,终端将会显示出/var/lib/docker/目录下所有的文件和文件夹列表。其中,/var/lib/docker/image
文件夹是Docker储存镜像的主要位置。如下图所示:
在/var/lib/docker/image/overlay2/imagedb/content/sha256
目录下,存储了所有已下载的Docker镜像(以镜像ID命名),即所有层的存储位置。在每个镜像ID目录下,都有一个名为“real”或者“diff”文件,代表该层的存储位置。
对于Docker镜像的每一层,其存储位置可以通过执行下面的命令来确认:
docker history <image_name>:<tag>
例如,对于nginx镜像,执行命令:
docker history nginx:latest
将会输出以下结果:
IMAGE CREATED CREATED BY SIZE COMMENT 84cf8d0a2e04 3 weeks ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon… 0B <missing> 3 weeks ago /bin/sh -c #(nop) STOPSIGNAL SIGTERM 0B <missing> 3 weeks ago /bin/sh -c #(nop) EXPOSE 80 0B <missing> 3 weeks ago /bin/sh -c ln -sf /dev/stdout /var/log/nginx… 22B <missing> 3 weeks ago /bin/sh -c set -x && apt-get update && ap… 68.2MB <missing> 3 weeks ago /bin/sh -c #(nop) ENV NJS_VERSION=2.1.0.6 0B <missing> 3 weeks ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.16.1 0B <missing> 4 weeks ago /bin/sh -c #(nop) LABEL maintainer=NGINX Do… 0B <missing> 4 weeks ago /bin/sh -c #(nop) CMD ["bash"] 0B <missing> 4 weeks ago /bin/sh -c #(nop) ADD file:7fbfce9f6a99e63a5… 63.2MB
其中,每一层的SIZE字段表示该层的实际占用空间大小。该命令输出结果的第一列就是Docker镜像每一层的ID,从上到下依次代表镜像的各个层。
我们可以根据这个命令的输出结果,确认每一层具体的存储位置。例如,在上述命令的输出结果中,最后一列是该层的描述信息,其中包括了该层的原始命令和参数。
对于nginx镜像的第一层(ID为“84cf8d0a2e04”),该层的CMD为“CMD ["nginx" "-g" "daemon…””,即启动nginx服务;对于后面的各层,则是其它一些配置或命令。因此,我们可以大致猜测Docker镜像每一层的存储位置。
通过上述命令,用户可以在Linux系统下查看本地存储的Docker镜像。Docker镜像的层以镜像ID为文件夹名存放在/var/lib/docker/image/overlay2/imagedb/content/sha256
目录中。每一层分别存储在“real”或者“diff”文件中。
对于每一层镜像的存储位置,可以通过执行docker history
rrreee
/var/lib/docker/image
폴더는 Docker가 이미지를 저장하는 주요 위치입니다. 아래 그림과 같이:
/var/lib/docker/image/overlay2/imagedb/content/sha256
디렉터리에 저장됩니다. 각 레이어는 각각 "실제" 또는 "diff" 파일에 저장됩니다. 🎜🎜이미지의 각 레이어 저장 위치는 docker History
명령을 실행하여 볼 수 있으며, 출력 결과에서 해당 레이어의 설명 정보를 찾아 대략적으로 추측할 수 있습니다. 레이어의 저장 위치. 🎜🎜Docker 이미지와 컨테이너를 사용할 때 Docker 이미지의 저장 위치를 이해하면 로컬 저장 공간을 더 잘 관리할 수 있을 뿐만 아니라 Docker 이미지와 컨테이너를 백업 및 복원할 수 있습니다. 🎜위 내용은 Docker 이미지를 가져와 배치하는 위치를 확인하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!