如何将 Docker 中的数据库更改保存到服务器?

如何将 Docker 中的数据库更改保存到服务器?

我正在使用tomsik68/xampp dockerLinux 服务器上的图像。

当我重启服务器或删除容器(通过 docker rm myXampp)时,所有数据库更改都会丢失。如何将数据库更改保存到服务器?

这是 docker 镜像中的数据库位置:

"/opt/lampp/var/mysql"

我使用以下代码运行了容器:

docker run --name myXampp -p 3999:22 -p 4000:80 -d -v ~/myWebPages:/opt/lampp/htdocs tomsik68/xampp

我希望所有数据库更改都保存到服务器。谢谢大家!

答案1

假设“保存到服务器”的意思是将数据库内容保留在后续容器运行中,那么你必须创建 Docker 卷您的数据将被存储于其中。

与将网页挂载到目录的方式类似htdocs,您可以:

  • 选择本地计算机上的任意数据库目录,或者
  • 让 Docker 为您创建一个命名卷(例如xamppdb)。

例如:

docker run --name myXampp \
    -p 3999:22 -p 4000:80 -d \
    -v ~/myWebPages:/opt/lampp/htdocs \
    -v xamppdb:/opt/lampp/var/mysql \
    tomsik68/xampp

这假定/opt/lampp/var/mysql内容应该被保留下来。

相关内容