What is Docker Volume?

将应用和环境打包成镜像

How to use Docker Volume!

Docker volume

  1. Usage: docker volume COMMAND
  2. Manage volumes
  3. Commands:
  4. create Create a volume
  5. inspect Display detailed information on one or more volumes
  6. ls List volumes
  7. prune Remove all unused local volumes
  8. rm Remove one or more volumes
  9. Run 'docker volume COMMAND --help' for more information on a command.
  1. 直接使用命令挂载 -v

docker run -it -v hostDirectory:containerDirectory -p
Linux下挂载:
docker run -it -v /home:/home centos bash
Windows下挂载:和Linux下的文件路径有区别
docker run -it -v /d/zm/home:/home centos bash

  1. 匿名挂载 ```shell 不指定宿主机路径 [root@qq mysql]# docker run -d -P —name nginx03 -v /etc/nginx nginx #-P 随机端口 df6c74352f6a478e1dc5f16b3590e72ba7759ccd43b5b670ba77d7d05e19b347

[root@qq mysql]# docker volume ls #查看所有卷的情况 DRIVER VOLUME NAME local 7d3b5ef373129af03bc56e96499bd32e76fba00eaa953284bc7a6ddd16bcafac #这都是匿名的 local 51d1c577c2520e6b132de06ea90b438134da6bd4f98c38648a85bcd37f047c95

  1. 3. 具名挂载
  2. ```shell
  3. [root@qq mysql]# docker run -d -P --name nginx04 -v juming-nginx:/etc/nginx nginx #-v 卷名:容器内路径
  4. cae0cb1b8a8645dabb731d6bd4c081c2fe85df873a0978c4552003052462f26d
  5. [root@qq mysql]# docker volume ls
  6. DRIVER VOLUME NAME
  7. local 7d3b5ef373129af03bc56e96499bd32e76fba00eaa953284bc7a6ddd16bcafac
  8. local 51d1c577c2520e6b132de06ea90b438134da6bd4f98c38648a85bcd37f047c95
  9. local juming-nginx
  10. [root@qq mysql]# docker inspect juming-nginx ##可通过这个来看对应的nginx目录
  11. [
  12. {
  13. "CreatedAt": "2020-05-19T09:35:10+08:00",
  14. "Driver": "local",
  15. "Labels": null,
  16. "Mountpoint": "/var/lib/docker/volumes/juming-nginx/_data", ##在这
  17. "Name": "juming-nginx",
  18. "Options": null,
  19. "Scope": "local"
  20. }
  21. ]
  22. 这些文件都在/var/lib/docker/volumes/xxx/_data中

总结:

-v 容器路径 #匿名 在/var/lib/docker/volumes/xxx/_data 随机生成文件夹
-v 卷名:容器路径 #具名挂载
-v 宿主机路径:容器路径 #指定路径挂载

拓展:

-v 容器内路径:ro rw 改变读写的权限 ro readonly # 表示只读 rw readwrite #可读可写

Example

语雀内容