我在运行一个码头容器进程时:
host$ docker run -it <image> /etc/bootstrap.sh -bash然后在容器内部创建了一个文件/a.txt:
container$ echo "abc" > /a.txt
container$ cat a.txt
abc我注意到/是none的文件系统类型:
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)如何持久化新创建的文件?
发布于 2016-08-08 01:28:23
Q:在退出容器进程并重新启动后,文件消失了。
A:不会持久化码头容器中的数据。也就是说,当容器重新启动时,您丢失了所有的东西。
Q:容器进程的根文件系统实际上是什么?
A:并不真正理解这个问题,但我想您是在问root用户的主目录在哪里?如果是的话,那么root的家在/root。
Q:如何持久化新创建的文件?
A:,如果您打算在重新启动容器之后保持更改,那么您将需要使用data volume。
请参阅:https://docs.docker.com/engine/tutorials/dockervolumes/
本质上,在启动容器时,您可以传入-v选项,告诉容器您希望将目录从主机的文件系统映射到容器的目录。
即通过执行下面的示例命令,$ docker run -d -P --name web -v $(pwd):/root
您将希望将当前工作目录映射到容器的/root目录。因此,所有东西都会被写入容器的/root/区域,然后反映到主机的文件系统中,并被持久化。
https://stackoverflow.com/questions/38818512
复制相似问题