Docker: понимание слоев изображения после построения изображения и после запуска контейнера - PullRequest
0 голосов
/ 03 марта 2019

Я построил образ докера, используя Dockerfile:

- Dockerfile

FROM scratch
ADD archlinux.tar /
ENV LANG=en_US.UTF-8
CMD ["/usr/bin/bash"]

- создаю образ докера:

docker build -t archlinux/base .

, затем проверяюimages:

$ docker images  
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
archlinux/base      latest              7f4e7832243a        43 minutes ago      399MB

, затем перейдите в папку overlay2 и проверьте, что происходит

 root@  cd var/lib/docker/overlay2 
#  ls -al
0d5db16fa33657d952e4d7921d9239b5a17ef579e03ecdd5046b63fc47d15038

Теперь я пытаюсь запустить:

$ docker run -it archlinux/base

Теперь проверьте / varПапка / lib / overlay2

#  ls -al
total 24
drwx------  6 root  root  4096 Mar  3 15:58 .
drwx--x--x 15 simha users 4096 Mar  3 07:25 ..
drwx------  3 root  root  4096 Mar  3 16:01 0d5db16fa33657d952e4d7921d9239b5a17ef579e03ecdd5046b63fc47d15038
drwx------  4 root  root  4096 Mar  3 16:01 500ef7ee5672b73c778e2080dda0ad7a9101d6b65e5bdb0b52f4e5d2f22fa2b3
drwx------  4 root  root  4096 Mar  3 15:58 500ef7ee5672b73c778e2080dda0ad7a9101d6b65e5bdb0b52f4e5d2f22fa2b3-init
drwx------  2 root  root  4096 Mar  3 15:58 l

Теперь я вижу больше папок.

Почему до запуска была только одна папка, а позже она показывает много папок в оверлее2.

Если проверить изображения с помощью команды docker, он показывает то же, что и предыдущий:

$ docker images  
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
archlinux/base      latest              7f4e7832243a        43 minutes ago      399MB

Как понять изображение и его слои в оверлее2

1 Ответ

0 голосов
/ 03 марта 2019

Во-первых, обратите внимание, что содержимое каталога /var/lib/docker/ предназначено для внутреннего супа Docker и не должно быть перепутано.

В этом каталоге содержимое каталога overlay2 предназначено для храненияслои докеров, которые составляют ваши докерские изображения и контейнеры.Важно помнить, что overlay2 - это файловая система, использующая union mounts .Короче говоря, он объединит две папки в одну.Так что при использовании файловой системы вы можете увидеть одну папку, но под капотом их больше.Вот как Docker делает слоев .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...