2016-08-07 3 views
-1

я бегу процесс контейнера Docker с:Docker: где хранятся вновь созданные файлы?

host$ docker run -it <image> /etc/bootstrap.sh -bash 

Тогда внутри контейнера я создал файл /a.txt:

container$ echo "abc" > /a.txt 
container$ cat a.txt 
abc 

Я заметил, тип файловой системы для/нет нет:

container$ df -h 
Filesystem  Size Used Avail Use% Mounted on 
none   355G 19G 318G 6%/
tmpfs   1.9G  0 1.9G 0% /dev 
... 

Команда проверки показывает, что тома равна нулю.

host$ docker inspect <image> 
... 
"Volumes": null, 
... 

После того как я вышел из процесса контейнера и перезапустился, файл исчез. Я хотел бы понять: 1) какова корневая файловая система контейнерного процесса; 2) как я могу сохранить вновь созданный файл?

+0

вам нужно «docker commit» посмотреть документ https://docs.docker.com/engine/reference/commandline/commit/ – user2915097

+0

Я не понимаю, почему люди занижают этот вопрос ... – Dagang

ответ

1

Вопрос: После того как я вышел из процесса контейнера и перезапустился, файл исчез.

A: Данные в контейнере докера не сохраняются. То есть вы потеряли все, когда этот контейнер перезапустится.

Вопрос: Какова корневая файловая система процесса контейнера на самом деле?
A: Не понимаю этот вопрос, но я предполагаю, что вы спрашиваете, где находится домашний каталог пользователя root? Если это так, то корневой дом находится в /root.

Вопрос: Как я могу сохранить вновь созданный файл?
A: Если вы намерены сохранить изменения даже после перезагрузки контейнера, вам необходимо использовать докеры data volume.

См: https://docs.docker.com/engine/tutorials/dockervolumes/

По существу, при запуске контейнера, вы можете передать в -v вариант, чтобы контейнер, который вы хотели бы, чтобы отобразить каталог из файловой системы хозяина в каталог контейнера.

То есть, выполнив команду ниже пример, $ docker run -d -P --name web -v $(pwd):/root

Вы вы хотели бы отобразить текущую рабочую директорию в директорию /root контейнера. Таким образом, все записывается в область /root/ контейнера, которая отображается в файловой системе вашего хоста, и она сохраняется.

+0

@ Dagang не уверен почему нисходящий также ... Но дайте мне знать, помогает ли это. –

+0

Для «Что такое корневая файловая система процесса контейнера на самом деле», я имею в виду, когда я запускал «df -h», он показал, что тип/файловой системы - нет. Итак, это файловая система в памяти? или файловая система tmp, отображаемая где-то в файловой системе хоста. – Dagang

+0

@ Даганг - я вижу.Честно говоря, я тоже не уверен. Я попытался провести какое-то исследование только сейчас, но я ничего не получил ... Основываясь на его поведении и документации докеров, где они говорят, что данные, принадлежащие контейнеру, не сохраняются, я бы сказал это файловая система в памяти. –

Смежные вопросы