目录:
一. docker将数据挂载到容器的三种方式
1、Docker提供三种方式将数据从宿主机挂载到容器中
- volumes:Docker管理宿主机文件系统的一部分(/var/lib/docker/volumes) 保存数据的最佳方式。
- bind mounts:将宿主机上的任意位置的文件或者目录挂载到容器中, 就像软连接一样。
- tmpfs:挂载存储在主机系统的内存中,而不会写入主机的文件系统(不常用)。
区别:
- volume : 是docker的宿主机文件系统一部分,只有docker可以进行更改,其他进程不能修改
- bind mounts : 是挂载在宿主机文件系统的任意位置,除了docker所有进程都可以进行修改、
2、管理卷
docker volume create nginx-vol # 创建一个数据卷 nginx-vol
docker volume ls # 查看宿主机数据卷信息
docker volume inspect nginx-vol # 查看 nginx-vol 这个数据卷详细信息
ls /var/lib/docker/volumes/nginx-vol/_data # 详细信息中会显示 nginx-vol 这个卷实际在宿主机位置
docker rm -f $(docker ps -a |awk '{print $1}') # 删除所有容器
3、volumes:将容器中的数据持久化到宿主机中
1)用卷创建一个容器:
docker run -d --name=nginx-test -p 88:80 --mount src=nginx-vol,dst=/usr/share/nginx/html nginx
run -d # 后台启动一个nginx容器
--name=nginx-test # 自定义容器名字(默认