Docker CLI操作volume
来源:互联网 发布:mac 安装mysql tar.gz 编辑:程序博客网 时间:2024/05/29 12:45
实验环境docker-engine版本V1.13
根据v1.13版的docker文档,说明了volume的几个特点:
- 可以绕过文件系统,存在于一个或多个容器中
- 独立于容器的生命周期,并且在容器销毁以后,volume 不会被自动删除或是垃圾回收
- 分三类:
- host volume:在宿主机上,可从容器内访问
- named volume:docker管理volume位置,有名字
- anonymous volume:docker管理volume位置,没有名字
docker volume命令有下面几个子命令:
1、docker volume create
最基本的,创建本地卷:
[root@localhost ~]# docker volume create hellohello[root@localhost ~]# docker volume lsDRIVER VOLUME NAMElocal hello
创建一个自定义参数的卷:
create
命令可以创建一个卷,默认的driver是local
,它类似于linux中的mount
命令,也可以挂上几个自定义的参数,如下: type
表示文件系统类型,device
表示设备,o
表示mount
命令的参数,用,
分隔不同的参数
[root@localhost ~]# docker volume create --driver local \ --opt type=tmpfs \ --opt device=tmpfs \ --opt o=size=100m,uid=1000 \ foo[root@localhost ~]# docker volume lsDRIVER VOLUME NAMElocal foo
运行一个容器并挂载这个卷
[root@localhost ~]# docker run -it --rm -v foo:/opt/foo busybox /bin/shUnable to find image 'busybox:latest' locallylatest: Pulling from library/busybox1cae461a1479: Pull complete Digest: sha256:c79345819a6882c31b41bc771d9a94fc52872fa651b36771fbe0c8461d7ee558Status: Downloaded newer image for busybox:latest/ # cd opt//opt # ls -ltotal 0drwxrwxrwt 2 1000 root 40 May 11 17:57 foo
可以看到,卷已经挂载了,并且uid设置为了1000
创建一个网络目录作为卷:
[root@localhost /]# docker volume create --driver=local \ --opt type=nfs \ --opt o=addr=192.168.0.105,rw \ --opt device=:/opt/test \ foofoo
查看卷foo的详细信息:
[root@localhost /]# docker volume inspect foo[ { "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/foo/_data", "Name": "foo", "Options": { "device": ":/opt/test", "o": "addr=192.168.0.105,rw", "type": "nfs" }, "Scope": "local" }]
运行一个容器测试卷的情况:
[root@localhost /]# docker run -it --rm -v foo:/opt/foo busybox /bin/sh/ # cd /opt/foo/opt/foo # lshahaha
可以看到,在/opt/foo
目录中有网络卷中创建的文件,挂载成功。
2、docker volume inspect
这个命令比较简单,只有一个参数--format, -f
这也是docker中各种inspect
命令中相同的特点,栏目1中已经使用过这个命令,这里加入参数指定要查看的项:
[root@localhost /]# docker volume inspect --format '{{ .Mountpoint }}' foo/var/lib/docker/volumes/foo/_data
对比栏目1中的结果,这里显示的特定的输出。
3、docker volume ls
这个命令也比较简单,和inspect
类似,可以通过--format, -f
指定输出的格式,由于volume有下表中的几个属性,所以可以根据他们进行定制输出:
如下命令定制输出的信息:
[root@localhost /]# docker volume ls --format "{{.Name}}: {{.Driver}}"foo: localfoo1: localfoo2: local
--quiet, -q
命令可以简洁的只输出volume名,方便作为参数输入到别的命令中去。
[root@localhost /]# docker volume ls --quietfoofoo1foo2
4、docker volume prune
删除所有没用的volume,危险操作,慎用!
5、docker volume rm
删除指定的volume
[root@localhost /]# docker volume rm foo2foo2
阅读全文
0 0
- Docker CLI操作volume
- 深入理解 Docker Volume
- Docker中的Volume
- Docker数据管理:Named volume
- docker命令之volume
- docker volume源码分析
- docker共享volume
- Docker volume分析
- 什么是Docker Volume?
- Docker volume 挂载卷
- docker managed volume
- docker卷(Volume)
- docker的volume管理
- 深入理解Docker Volume
- docker教程(3)--volume
- Docker CLI命令小结
- 深入理解Docker Volume(一)
- 深入理解Docker Volume(二)
- 二叉搜索树的第K个节点
- Spring Security教程
- D. Fedor and coupons(贪心+优先队列)
- HDU 1049 Climbing Worm
- 算法分析与设计课程14——416. Partition Equal Subset Sum
- Docker CLI操作volume
- Java IO流总结
- 【项目记录】山东大学场馆管理系统之——留言板
- spring security 3 自定义认证,授权示例
- CSS之盒子(Box)模型
- Liunx线程(一)
- web.xml文件中的7个错误的安全配置
- AngularJS Batarang 安装
- C++第8次实验(提高班)—多继承(参考答案)