0

我是 Rancher 和 Docker 的新手,我无法让我的数据持久化。

到目前为止我所做的是使用 Rancher/Cattle 我通过 UI 创建了一个 EC2 服务器并运行了下面的 docker-compose.yml 文件,它成功地激活了 mysql 服务。

我期望的是,一旦堆栈/服务运行,即使堆栈/服务已被删除,任何写入容器内 dir /var/lib/mysql 的文件都将被保留。我希望我应该能够在 EC2 服务器上找到该文件。这是一个正确的假设吗?

我可以确认,当我通过 Rancher UI 停止服务时,一旦我重新启动服务并登录到容器,我添加的任何文件都会保留。但是,当我删除堆栈并使用相同的 docker-compose.yml 文件在同一主机上重建它时,这些文件已被删除。

version: '2'
services:
   mysql:
     container_name: flask_mysql
     restart: always
     image: mysql:latest
     environment:
       MYSQL_ROOT_PASSWORD: 'test_pass' # TODO: Change this
       MYSQL_USER: 'test'
       MYSQL_PASS: 'pass'
     volumes:
      - my-datavolume:/var/lib/mysql
volumes:
  my-datavolume:
   driver: local

有什么建议么?

4

1 回答 1

0

您已经定义了一个堆栈范围的卷,该卷与该特定堆栈相关联,并在您删除堆栈时被删除。如果您希望它位于堆栈之外,您需要一个环境范围的卷:http ://rancher.com/docs/rancher/v1.6/en/cattle/volumes/#environment-scoped-volumes

于 2017-09-21T04:39:48.340 回答