如何使用docker-compose使用正式MySQL映像为Docker容器使用临时卷?

我正在用docker-compose使用一个官方的MySQL docker镜像( https://github.com/docker-library/mysql/blob/3288a66368f16deb6f2768ce373ab36f92553cfa/5.6/Dockerfile ),我希望在重新启动时清除它的数据。 默认情况是它在容器重启之间保留其数据。

这是我的docker-compose.yml:

version: "2" services: mydb: image: mysql:5.6 environment: MYSQL_ROOT_PASSWORD: foo 

当我在我的容器上使用docker检查时,它会在主机上显示它的位置。 我怎样才能让它存储在容器内的数据? 我不希望它坚持下去。

当使用docker-composedocker-compose stop (或ctrl-c,或任何其他types的中断/退出)不会删除容器。 因此,如果您要停止容器,下次启动时仍然存在。

你想要的是docker-compose down , 根据文档将“停止和删除容器,networking,图像和卷”。 请注意,默认情况下只删除容器和networking – 如果您要删除图像或卷,则需要指定命令行开关。

要在本地计算机上保存数据,我将本地path映射到容器内的mysqlpath:

 volumes: - /private/var/lib/mysql:/var/lib/mysql 

整个图像定义如下所示:

  db: image: mariadb:latest ports: - "3306:3306" volumes: - /private/var/lib/mysql:/var/lib/mysql environment: MYSQL_ROOT_PASSWORD: rootpass MYSQL_DATABASE: db MYSQL_USER: user MYSQL_PASSWORD: pass 

它适用于我 – 在我的本地计算机上创buildmysql数据库文件。

您可以在以下urlfind更多相关信息: http : //container42.com/2013/12/16/persistent-volumes-with-docker-container-as-volume-pattern/