MySQL映像忽略docker-compose.yml的卷configuration
使用正式的MySQL Docker镜像,我不明白如何将数据目录挂载到主机上的某个特定点。 图像集的Dockerfile
VOLUME /var/lib/mysql
所以数据库数据应该存储在主机上的某个地方。 我想在我的docker-compose文件中更具体,所以我尝试了以下内容:
mysql: image: mysql:5.7 environment: - MYSQL_ROOT_PASSWORD=password - MYSQL_DATABASE=mydb volumes: - ./database/mysql:/var/lib/mysql
从docker开始构build一切正常,但主机上的./database/mysql目录保持为空,而容器中的/ var / lib / mysql包含数据。 我的configuration有问题吗? 还是我误解如何使用卷?
docker-compose
会一直尝试保留数据量,这样就不会丢失数据。 如果您开始使用数据卷,然后更改为主机卷,则仍然可以获取数据卷。
要解决这个问题,运行docker-compose stop && docker-compose rm -f
,这将删除你的容器和你的数据卷(这将清除你的数据卷中的任何数据)。 在下一个docker-compose up
,你应该看到它使用主机卷。
编辑:从撰写1.6开始,您可以运行docker-compose stop -v
而不是上面的两个命令。
- docker:端口映射不适用于非默认机器
- PHP FPM Docker ZF1:会话已经启动。 会话ID必须先设置
- docker-compose.yml无效:app.build包含一个无效的types,它应该是一个string
- 不能finddocker导入的输出
- 如何在docker集装箱运行与gunicorn aiohttp?
- Docker的撰写 – 如何在一个MySQL容器中引用许多模式
- 无法在win 10虚拟机上启动docker
- 如何从Tutum私有registry中将Amazon Docker的Docker镜像拖放到Amazon ECS?
- 如何解决Docker for Mac中Docker.qcow2的大小限制?