Когда вы создаете контейнер без флага --read-only
, в верхней части изображения создается доступный для записи слой файловой системы (в нашем случае это alpine), так что файловая система контейнера доступна для записи.Это будет существовать до тех пор, пока вы не удалите контейнер.
Расположение в хост-системе зависит от корня данных для Docker (по умолчанию: /var/lib/docker
) и используемого драйвера хранилища (вероятно, overlay2
).Вы можете найти драйвер хранилища, используемый для вашего контейнера и каталогов данных, в свойстве GraphDriver
.
docker container inspect --format '{{ .GraphDriver }}' alpine
"GraphDriver": {
"Data": {
"LowerDir": "/var/lib/docker/overlay2/d71e8f30d831f1c72e883e8de3c7560b2a69751f942fe8d5e24b740699872953-init/diff:/var/lib/docker/overlay2/31f665ee64e368e98d39a709dd8662bcf92726be0c992ccad07553e277fe754f/diff:/var/lib/docker/overlay2/a19268faed5bf38f3ad574274c2062bc29fad9406938b63e50451eeba440b30b/diff:/var/lib/docker/overlay2/52b4b93b90556b85eb8b8680e037b9ba5eaaedaf91a197b5270ab25d85cc43c1/diff:/var/lib/docker/overlay2/27cbda99661de508ba2fd6aefe3b5f98a3ef75966742f6566b7313065f713da0/diff:/var/lib/docker/overlay2/8f5c1f89ef130b85016f114dc5e7ccc410cc2a0def823dc65bf9dad15f76eb47/diff:/var/lib/docker/overlay2/483646cdc089e9828767c8ce6895da362a56ea7fd35881f70aee996d71dbf70a/diff:/var/lib/docker/overlay2/ebbdc64049110d1710755176a2fb061759e25c52b3f90da65e6ae2fbfd7dc4dc/diff:/var/lib/docker/overlay2/756e3bb714cce5892ce43d59d11492a7b027a0fe37abae2d5770cebe59a70bc3/diff:/var/lib/docker/overlay2/362674379f2d583a5572c1797aed2ff03eefa786a509e04913cfb94a16a774dd/diff",
"MergedDir": "/var/lib/docker/overlay2/d71e8f30d831f1c72e883e8de3c7560b2a69751f942fe8d5e24b740699872953/merged",
"UpperDir": "/var/lib/docker/overlay2/d71e8f30d831f1c72e883e8de3c7560b2a69751f942fe8d5e24b740699872953/diff",
"WorkDir": "/var/lib/docker/overlay2/d71e8f30d831f1c72e883e8de3c7560b2a69751f942fe8d5e24b740699872953/work"
},
"Name": "overlay2"
}
UpperDir
будет содержать только внесенные вами изменения, включая hello.txt
файл в вашем примере.Вы можете сделать что-то вроде этого, чтобы перейти к нему.
cd $(docker container inspect --format '{{ .GraphDriver.Data.UpperDir }}' alpine)