我正在学习如何使用 docker,它说:
“一旦你运行了一个 Docker 镜像,你就可以像在机器速度下一样创建、修改和删除文件。这些更改只进入容器。你可以启动和停止它,但是在你用 docker rm 命令杀死它之后,变化将永远消失。”
事实证明,例如,我下载了 Ubuntu docker 映像,在其上放置程序(Python、NGINX、MYSQL),然后将其保存在我的名下并在另一台机器上运行。
例如,如果我的脚本创建文件(例如 f1.txt、f2.txt)和目录(例如 dir1、dir2),那么如果我停止这个 docker:
sudo docker stop [CONTAINER ID]
然后如果我运行它,那么文件(f1.txt,f2.txt)和目录(dir1,dir2)将不再由该应用程序创建?
还是我误解了什么?
您需要了解图像与容器的不同之处。
如果您保存了图像 (
docker build
或docker commit
),则所有文件都将被保存,并且在图像 (docker run
) 启动的任何地方都可用。容器是从图像、功能和死亡中创建的,丢失了所有的数据——这就是概念。要共享图像,可以使用https://hub.docker.com等存储库文件将保留。停止容器 (
docker start
) - 文件系统的所有层保持原位,数据不会丢失。但不要将它与docker run
基于图像启动新容器 ( ) 混淆 - 那里不会有文件。移除容器 (
docker stop
, thendocker rm
) - 层成功,数据丢失。例外:如果数据存储在安装在容器中的卷中,它们将保留。