Seb*_*eer 6 mysql docker docker-compose
使用官方MySQL Docker镜像,我不明白如何将数据目录挂载到主机上的特定点.图像集的Dockerfile
VOLUME /var/lib/mysql
Run Code Online (Sandbox Code Playgroud)
所以数据库数据应该存储在主机上的"某处".我希望在我的docker-compose文件中更具体,所以我尝试了以下内容:
mysql:
image: mysql:5.7
environment:
- MYSQL_ROOT_PASSWORD=password
- MYSQL_DATABASE=mydb
volumes:
- ./database/mysql:/var/lib/mysql
Run Code Online (Sandbox Code Playgroud)
从docker-compose up一切开始工作正常,但主机上的./database/mysql目录保持为空,而容器中的/ var/lib/mysql包含数据.我的配置有问题吗?或者我误解了如何使用卷?
docker-compose将始终尝试保留数据量,以便您不会丢失其中的任何数据.如果您从数据卷开始,然后更改为主机卷,则仍可能获得数据卷.
要更正此问题,请运行docker-compose stop && docker-compose rm -f,这将删除容器和数据卷(这将清除数据卷中的所有数据).接下来docker-compose up,您应该使用主机卷看到它.
编辑:从撰写1.6开始,您可以运行docker-compose stop -v而不是上面的两个命令.
| 归档时间: |
|
| 查看次数: |
4647 次 |
| 最近记录: |