version: '3.0'
services:
mysql:
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: 123456
image: mysql:5.7
restart: always
volumes:
- /apps/svr/docker/docker-compose/mysql/lib/mysql:/var/lib/mysql
#删除容器后重新创建容器只要这个挂载的数据文件夹没变,数据库数据就和之前一样。
ports:
- 3306:3306
说明:stop容器后start容器,容器内的数据依然存在;
删除容器重新创建,数据就会被清空。
所以使用挂载:/apps/svr/docker/docker-compose/mysql/lib/mysql:/var/lib/mysql
使得容器内数据在宿主机中持久化,如果删除容器,重新创建时,只要使用挂载这个文件夹:
/apps/svr/docker/docker-compose/mysql/lib/mysql 。那么数据库中数据就会加载进新的容器内。
补充:
- 如果使用-v mysql:/var/lib/mysql 等于是设置数据卷名称为mysql。数据会存在于docker的某个目录下。
- docker volume ls 可以查看volume列表。
- docker volume inspect 【volume名称】,可以查看某个volume的详细信息,路径,创建时间等。
- docker volume rm [volume name] 删除指定volume