Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Docker映像-映像删除后持久化数据_Docker_Docker Compose - Fatal编程技术网

Docker映像-映像删除后持久化数据

Docker映像-映像删除后持久化数据,docker,docker-compose,Docker,Docker Compose,所以我最近开始和docker一起玩,因为我觉得我的网站被停靠会很好。我有一个超级简单的docker-compose.yml文件,其中只包含wordpress:latest和mysql:5.7 我将这个文件复制到我的服务器上,并使用docker compose up-d运行它,它运行得很好。我点击了前端,它向我展示了WordPress管理员设置页面。伟大的我设置了它,发了一篇帖子,导航到我的域名,我可以看到帖子,一切都很好 ……然而 然后,我对数据持久性产生了兴趣,想知道如果我的图像停止运行,如果

所以我最近开始和docker一起玩,因为我觉得我的网站被停靠会很好。我有一个超级简单的docker-compose.yml文件,其中只包含wordpress:latest和mysql:5.7

我将这个文件复制到我的服务器上,并使用docker compose up-d运行它,它运行得很好。我点击了前端,它向我展示了WordPress管理员设置页面。伟大的我设置了它,发了一篇帖子,导航到我的域名,我可以看到帖子,一切都很好

……然而

然后,我对数据持久性产生了兴趣,想知道如果我的图像停止运行,如果我用相同的命令再次启动它们,会发生什么。我停下集装箱,重新启动,我的新邮件还在那里。完美的然后我想删除我的图像并重新开始,所以我停止运行图像,然后使用
docker rmi blah/blah:blah
删除图像本身。我运行了docker images ls,所有的图像都消失了,正如预期的那样。然后我重新运行我的docker compose文件。图像不见了,所以它再次下载了目标图像,我在浏览器中导航到我的域,希望再次看到wordpress设置页面。。。但是我以前的数据仍然在那里,甚至我的帖子也在wordpress上。我不明白为什么删除图像并重新下载它们并没有抹去所有的数据。显然我做错了什么,但我真的不知道是什么


提前感谢您的任何见解

根据上面的注释,数据通过volume(或-v参数)持久化到服务器上可由容器访问的目录。在docker compose中,我的卷被设置为
/var/lib/mysql
,但是,真正的目录似乎是
/var/lib/docker/volumes/root\u db\u data/\u data/mysql
,根据上面的注释,数据通过卷(或-v参数)持久化到服务器上可由容器访问的目录。在docker compose中,我的卷被设置为
/var/lib/mysql
,但是,真正的目录似乎是
/var/lib/docker/volumes/root\u db\u data/\u data/mysql

需要更多的信息。您是否有指向本地计算机文件夹的卷
-v
标志?如果是这样,因为映像每次都使用相同的文件夹,这可能就是这种持久性的原因。只需从该文件夹中删除数据。可能就是这样!我的docker compose文件中有
image:mysql:5.7卷:-db_data:/var/lib/mysql
!那么,我假设数据库表安装在我的服务器上,而不是映像中?我在文件的末尾还有
卷:db_data:{}
而不是使用db_数据。您可以放置一个本地文件夹
/somelocalfolder:/var/lib/mysql
,然后删除这些内容。但是您使用的命名卷更优雅。要删除卷,请使用docker volume ls和docker volume rm需要更多信息。您是否有指向本地计算机文件夹的卷
-v
标志?如果是这样,因为映像每次都使用相同的文件夹,这可能就是这种持久性的原因。只需从该文件夹中删除数据。可能就是这样!我的docker compose文件中有
image:mysql:5.7卷:-db_data:/var/lib/mysql
!那么,我假设数据库表安装在我的服务器上,而不是映像中?我在文件的末尾还有
卷:db_data:{}
而不是使用db_数据。您可以放置一个本地文件夹
/somelocalfolder:/var/lib/mysql
,然后删除这些内容。但是您使用的命名卷更优雅。要删除卷,请使用
docker卷ls和docker卷rm