Docker学习笔记(二) volume介绍和操作

举报
小米粒-biubiubiu 发表于 2020/11/30 22:50:57 2020/11/30
【摘要】                                          volume介绍和操作 一.volume 介绍 提供独立于容器之外的持久化存储,比如说运行一个数据库容器,数据库里面的数据就是需要被持久化的,volume就可以做到这个功能实现,并且还能共享容器与容器之间的数据。 二.volume 操作 方式一,以默认的目录挂载到指定的容器 目录中 d...

                                         volume介绍和操作

一.volume 介绍

提供独立于容器之外的持久化存储,比如说运行一个数据库容器,数据库里面的数据就是需要被持久化的,volume就可以做到这个功能实现,并且还能共享容器与容器之间的数据。

二.volume 操作

方式一,以默认的目录挂载到指定的容器 目录中

docker run -d  --name nginx  -v /usr/share/nginx/html nginx   

docker inspect nginx  查看所有的容器


  
  1. },
  2. "Mounts": [
  3. {
  4. "Type": "volume",
  5. "Name": "daad412457c85a5ee10504928d9d2d642e45d5deb571ae762aa1e25e45925674",
  6. "Source": "/var/lib/docker/volumes/daad412457c85a5ee10504928d9d2d642e45d5deb571ae762aa1e25e45925674/_data",
  7. "Destination": "/usr/share/nginx/html",
  8. "Driver": "local",
  9. "Mode": "",
  10. "RW": true,
  11. "Propagation": ""
  12. }
  13. ],
  14. "Config": {
  15. "Hostname": "46e50083988e",
  16. "Domainname": "",
  17. "User": "",
  18. "AttachStdin": false,
  19. "AttachStdout": false,
  20. "AttachStderr": false,
  21. "ExposedPorts": {
  22. "80/tcp": {}
  23. },
  24. "Tty": false,
  25. "OpenStdin": false,
  26. "StdinOnce": false,
  27. "Env": [
  28. "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
  29. "NGINX_VERSION=1.15.2-1~stretch",
  30. "NJS_VERSION=1.15.2.0.2.2-1~stretch"
  31. ],
  32. "Cmd": [
  33. "nginx",
  34. "-g",
  35. "daemon off;"
  36. ],
  37. "ArgsEscaped": true,
  38. "Image": "nginx",
  39. "Volumes": {
  40. "/usr/share/nginx/html": {}
  41. },
  42. "WorkingDir": "",
  43. "Entrypoint": null,
  44. "OnBuild": null,
  45. "Labels": {
  46. "maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
  47. },
  48. "StopSignal": "SIGTERM"
  49. },
  50. "NetworkSettings": {
  51. "Bridge": "",
  52. "SandboxID": "d23f93abdf77ecdd101c7c8ed63bf4b21c08aaee28120c53493fb30363ef2c06",
  53. "HairpinMode": false,
  54. "LinkLocalIPv6Address": "",
  55. "LinkLocalIPv6PrefixLen": 0,
  56. "Ports": null,
  57. "SandboxKey": "/var/run/docker/netns/d23f93abdf77",
  58. "SecondaryIPAddresses": null,
  59. "SecondaryIPv6Addresses": null,
  60. "EndpointID": "",
  61. "Gateway": "",
  62. "GlobalIPv6Address": "",
  63. "GlobalIPv6PrefixLen": 0,
  64. "IPAddress": "",
  65. "IPPrefixLen": 0,
  66. "IPv6Gateway": "",
  67. "MacAddress": "",
  68. "Networks": {
  69. "bridge": {
  70. "IPAMConfig": null,
  71. "Links": null,
  72. "Aliases": null,
  73. "NetworkID": "e9a5c3a2efc45030b88a90fcf3db7d3e22282a98ba2862a00992db2b1a2cc82f",
  74. "EndpointID": "",
  75. "Gateway": "",
  76. "IPAddress": "",
  77. "IPPrefixLen": 0,
  78. "IPv6Gateway": "",
  79. "GlobalIPv6Address": "",
  80. "GlobalIPv6PrefixLen": 0,
  81. "MacAddress": ""
  82. }
  83. }
  84. }
  85. }
  86. ]

    "Source": "/var/lib/docker/volumes/daad412457c85a5ee10504928d9d2d642e45d5deb571ae762aa1e25e45925674/_data",
                "Destination": "/usr/share/nginx/html",

重点为此处,将本地的source 对应的目录挂载到 nginx 的访问页面目录 。

 docker exec -it nginx /bin/bash    进入容器内部

 

方式二.将指定的当前目录的html目录挂载到指定的容器中

 docker run -p 80:80 -d -v $PWD/html:/usr/share/nginx/html nginx   将当前目录下的html目录挂载到容器里面的/usr/share/nginx/html 目录

curl  http://localhost:  输出的内容即为当前目录下的html目录中的index.html文件的内容

 

 docker create -v $PWD/data:/var/mydata --name data_container ubuntu  、

将data_container 容器的/var/mydata 挂载到 ubuntu 容器里面

docker run -it --volumes-from data_container ubuntu /bin/bash

进入到Ubuntu容器里面 ,

mount 命令  查看所有挂载

发现 已经把 data_container 的/var/mydata挂载上来了

cd  /var/mydata

 touch whatever.txt

ctrl+d 或者 exit 退出当前容器

cd  data 发现本地的目录中也创建 了一个 whatever.txt文件

多个容器之间可以互相挂载,以便做到数据共享。

 

文章来源: blog.csdn.net,作者:血煞风雨城2018,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_31905135/article/details/81394405

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。