将MySQL数据保存在Docker容器中
我在一个项目上使用Docker和Docker Compose。 我有3个容器:PHP,MySQL和Nginx。 目前,MySQL二进制数据存储在MySQL容器( /var/lib/mysql/...
)中。
我认为这不是一个最好的做法,如果集装箱从头开始重build,甚至可能是危险的。
保持数据安全的最佳方法是什么?
谢谢 :)
如果这是一个独立的服务器,保证数据安全的最好方法是使用docker data volumes
。 这两个选项是:
数据卷 :数据卷是绕过联盟文件系统的一个或多个容器内的特定目录。
数据卷可以由docker在文件系统上自动创build,如:
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": "" } ], ...
或者,您可以在您select的服务器上将一个filsystempath挂载到docker容器,如下所示:
docker run -d --name nginx2 -v /tmp/test:/usr/share/nginx/html nginx
有关更多信息,请参阅: https : //docs.docker.com/engine/tutorials/dockervolumes/
Docker Compose的解决scheme非常简单:
version: "2.0" services: mysql: image: mysql:5.7 volumes: - "mysql_data:/var/lib/mysql" # data container volumes: mysql_data: driver: local
我可以看到我的数量与Docker
docker volume ls