2017-02-11 185 views
1

我在项目中使用Docker和Docker Compose。我有3个容器:PHP,MySQL和Nginx。 现在,MySQL二进制数据存储在MySQL容器(/var/lib/mysql/...)内。在Docker容器中保存MySQL数据

我认为这不是一个最佳实践,如果容器是从头开始重建,甚至可能会很危险。

保持数据安全的最佳方法是什么?

谢谢:)

回答

1

如果这是一个独立的服务器,让您的数据安全将是使用docker data volumes的最佳途径。这两个选项是:

数据量:数据量是绕过联盟的文件系统的一个或多个容器内的特别指定的目录中。

docker run -d --name nginx -v /usr/share/nginx/html nginx 

docker inspect nginx 
... 
     "Mounts": [ 
      { 
       "Name": "4fead165b4c3ba1a900ca1ab0e095f43ee32d6a4c61eba37f4bcb28c58ce7036", 
       "Source": "/var/lib/docker/volumes/4fead165b4c3ba1a900ca1ab0e095f43ee32d6a4c61eba37f4bcb28c58ce7036/_data", 
       "Destination": "/usr/share/nginx/html", 
       "Driver": "local", 
       "Mode": "", 
       "RW": true, 
       "Propagation": "" 
      } 
     ], 
... 

或者你可以安装你所选择的对像泊坞窗容器服务器上的filsystem路径:

docker run -d --name nginx2 -v /tmp/test:/usr/share/nginx/html nginx 

的数据量可以自动泊坞窗上,如文件系统创建

了解更多信息,请参见: https://docs.docker.com/engine/tutorials/dockervolumes/

2

的soluti上相当简单,与码头工人撰写:

version: "2.0" 


services: 
    mysql: 
     image: mysql:5.7 
     volumes: 
      - "mysql_data:/var/lib/mysql" # data container 
volumes: 
    mysql_data: 
     driver: local 

而且我可以看到我的体积泊坞

docker volume ls 
+0

泊坞窗,撰写也是一个伟大的方式(更优雅)来实现这一点,好建议。 upvoted – gbolo