直接使用命令的方式挂载 -v

  1. #双向同步 主机:容器
  2. docker run -it -v /home:/home centos /bin/bash
  3. #容器中只读:ro,默认是读写rw
  4. docker run -it -v /home:/home:or centos /bin/bash

查看挂载情况

  1. [root@localhost] docker inspect a53fa0b6ed4e
  2. "Mounts": [
  3. {
  4. "Type": "bind",
  5. "Source": "/home",
  6. "Destination": "/home",
  7. "Mode": "",
  8. "RW": true,
  9. "Propagation": "rprivate"
  10. }
  11. ],

具名和匿名挂载

  1. #匿名挂载
  2. docker run -it -v /home centos /bin/bash
  3. #-v 的时候不指定对应主机的路径,自动生产挂载文件夹,默认挂载在docker目录下
  4. [root@localhost ~]# docker volume ls #看到本地有这样一个匿名挂载出来的
  5. DRIVER VOLUME NAME
  6. local 7430d0a797a1764116ce480e10cbb861fe602c86f2f3535c4cd1020c7db312b9
  7. #具名挂载
  8. docker run -it -v /home 具体名称:centos /bin/bash
  9. #-v 的时候左边是一个文件夹名称,默认在docker的目录下
  10. [root@localhost ~]# docker volume ls
  11. DRIVER VOLUME NAME
  12. local 7430d0a797a1764116ce480e10cbb861fe602c86f2f3535c4cd1020c7db312b9
  13. local juming
  14. #查看卷的位置
  15. #所以匿名具名的数据卷在var/lib/docker/volumes/xxx/_data
  16. [root@localhost ~]# docker volume inspect juming
  17. [
  18. {
  19. "CreatedAt": "2022-01-21T06:43:42+08:00",
  20. "Driver": "local",
  21. "Labels": null,
  22. "Mountpoint": "/var/lib/docker/volumes/juming/_data",
  23. "Name": "juming",
  24. "Options": null,
  25. "Scope": "local"
  26. }
  27. ]
  28. #默认卷的目录:var/lib/docker/volumes/
  29. [root@localhost ~]# cd /var/lib/docker/volumes/
  30. [root@localhost volumes]# ls
  31. 7430d0a797a1764116ce480e10cbb861fe602c86f2f3535c4cd1020c7db312b9 backingFsBlockDev juming metadata.db

dockerfile的方式

编译了之后,”dataC1”,”dataC2” 会匿名挂载到docker目录下

  1. FROM centos
  2. VOLUME ["dataC1","dataC2"]
  3. CMD echo "finished---------succes!"
  4. CMD /bin/bash