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

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

                                         volume介绍和操作

一.volume 介绍

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

二.volume 操作

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

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

docker inspect nginx  查看所有的容器


       },
      "Mounts": [
       {
      "Type": "volume",
      "Name": "daad412457c85a5ee10504928d9d2d642e45d5deb571ae762aa1e25e45925674",
      "Source": "/var/lib/docker/volumes/daad412457c85a5ee10504928d9d2d642e45d5deb571ae762aa1e25e45925674/_data",
      "Destination": "/usr/share/nginx/html",
      "Driver": "local",
      "Mode": "",
      "RW": true,
      "Propagation": ""
       }
       ],
      "Config": {
      "Hostname": "46e50083988e",
      "Domainname": "",
      "User": "",
      "AttachStdin": false,
      "AttachStdout": false,
      "AttachStderr": false,
      "ExposedPorts": {
      "80/tcp": {}
       },
      "Tty": false,
      "OpenStdin": false,
      "StdinOnce": false,
      "Env": [
      "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
      "NGINX_VERSION=1.15.2-1~stretch",
      "NJS_VERSION=1.15.2.0.2.2-1~stretch"
       ],
      "Cmd": [
      "nginx",
      "-g",
      "daemon off;"
       ],
      "ArgsEscaped": true,
      "Image": "nginx",
      "Volumes": {
      "/usr/share/nginx/html": {}
       },
      "WorkingDir": "",
      "Entrypoint": null,
      "OnBuild": null,
      "Labels": {
      "maintainer": "NGINX Docker Maintainers <docker-maint@nginx.com>"
       },
      "StopSignal": "SIGTERM"
       },
      "NetworkSettings": {
      "Bridge": "",
      "SandboxID": "d23f93abdf77ecdd101c7c8ed63bf4b21c08aaee28120c53493fb30363ef2c06",
      "HairpinMode": false,
      "LinkLocalIPv6Address": "",
      "LinkLocalIPv6PrefixLen": 0,
      "Ports": null,
      "SandboxKey": "/var/run/docker/netns/d23f93abdf77",
      "SecondaryIPAddresses": null,
      "SecondaryIPv6Addresses": null,
      "EndpointID": "",
      "Gateway": "",
      "GlobalIPv6Address": "",
      "GlobalIPv6PrefixLen": 0,
      "IPAddress": "",
      "IPPrefixLen": 0,
      "IPv6Gateway": "",
      "MacAddress": "",
      "Networks": {
      "bridge": {
      "IPAMConfig": null,
      "Links": null,
      "Aliases": null,
      "NetworkID": "e9a5c3a2efc45030b88a90fcf3db7d3e22282a98ba2862a00992db2b1a2cc82f",
      "EndpointID": "",
      "Gateway": "",
      "IPAddress": "",
      "IPPrefixLen": 0,
      "IPv6Gateway": "",
      "GlobalIPv6Address": "",
      "GlobalIPv6PrefixLen": 0,
      "MacAddress": ""
       }
       }
       }
       }
      ]
  
 

    "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

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

    全部回复

    上滑加载中

    设置昵称

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

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

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