docker数据卷
学习docker后存在疑问,如果docker容器关闭后其中的数据还存在吗?
验证docker的数据保存位置
#测试安装MySQL镜像
#查询MySQL镜像是否存在
docker search mysql
# 下载镜像
docker pull mysql:5.7
# 查询镜像是否下载完毕
docker images
# 运行mysql镜像
docker run -d -p 8806:3306 -e MYSQL_ROOT_PASSWORD=123456 --name="mysql01" mysql:5.7
查看MySQL01容器中volume详细信息
# 查看所有数据卷信息
docker volume list
# 查看具体容器的数据卷信息
docker inspect volume mysql01
进入容器并进入镜像中挂载目录,新建文档my_mysql_test.txt,输入内容hello world
宿主机与容器的数据共享
由以上操作可知,docker容器可以将数据目录挂载到宿主机文件系统,实现宿主机与容器的数据共享,同时也可指定自定义挂载地址,如果没有通过-v指定,那么Docker会默认帮我们创建匿名数据卷进行映射和挂载。
#指定要将容器路径挂载到宿主机的哪个目录下(具名挂载)
docker run -d -P --name nginx01 -v my_nginx:/usr/local/nginx nginx
# 匿名挂载(例如)
docker run -d -P --name nginx01 -v /etc/nginx(容器内路径) nginx
#扩展权限ro\rw,规定容器内的挂载点文件只读或可读可写
docker run -d -P --name nginx01 -v my_nginx:/usr/local/nginx:ro nginx
容器与容器之间的数据共享
使用–volumes-from可以将两个容器之间的文件关联起来,实现容器中间的数据共享,注意使用此命令会同时拷贝nginx01的权限信息,假如nginx01的权限是ro则nginx02的权限也会是ro。
docker run -d -P --name nginx02 --volumes-from nginx01 nginx