docker run -itd --name nginx -v /Users/sang/blog/docker/docker/:/usr/share/nginx/html/ -p 80:80 bc26f1ed35cf这样便是将宿主机中的
/Users/sang/blog/docker/docker/ 目录挂载到容器的
/usr/share/nginx/html/ 目录下。接下来读者只需要在
/Users/sang/blog/docker/docker/ 目录下添加 html 文件,或者修改 html 文件,都能在 nginx 访问中立马看到效果。这种用法对于开发测试非常方便,不用重新部署,重启容器等。
注意:宿主机地址是一个绝对路径
更多操作
Dockerfile中的数据卷
如果开发者使用了 Dockerfile 去构建镜像,也可以在构建镜像时声明数据卷,例如下面这样:
FROM nginx
ADD https://www.baidu.com/img/bd_logo1.png /usr/share/nginx/html/
RUN echo "hello docker volume!">/usr/share/nginx/html/index.html
VOLUME /usr/share/nginx/html/这样就配置了一个匿名数据卷,运行过程中,将数据写入到
/usr/share/nginx/html/ 目录中,就可以实现容器存储层的无状态变化。查看所有数据卷
使用如下命令可以查看所有数据卷:
docker volume ls如图:

查看数据卷详情
根据 volume name 可以查看数据详情,如下:
docker volume inspect执行结果如下图:

删除数据卷
可以使用
docker volume rm 命令删除一个数据卷,也可以使用
docker volume prune 批量删除数据卷,如下:

批量删除时,未能删除掉所有的数据卷,还剩一个,这是因为该数据卷还在使用中,将相关的容器停止并移除,再次删除数据卷就可以成功删除了,如图:

数据卷容器
数据卷容器是一个专门用来挂载数据卷的容器,该容器主要是供其他容器引用和使用。所谓的数据卷容器,实际上就是一个普通的容器,举例如下:
创建数据卷容器
使用如下方式创建数据卷容器:
docker run -itd -v /usr/share/nginx/html/ --name mydata ubuntu










