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