当使用来自注册中心的docker映像时,我经常需要查看映像容器创建的卷。
注意:我在Red Hat 7上使用docker 1.3.2版本。
例子
Docker Registry的postgress官方镜像有一个为容器/var/lib/postgresql/data.配置的卷
在postgres容器中显示/var/lib/postgresql/data的卷最简洁的命令是什么?
当使用来自注册中心的docker映像时,我经常需要查看映像容器创建的卷。
注意:我在Red Hat 7上使用docker 1.3.2版本。
例子
Docker Registry的postgress官方镜像有一个为容器/var/lib/postgresql/data.配置的卷
在postgres容器中显示/var/lib/postgresql/data的卷最简洁的命令是什么?
当前回答
我们可以不使用-f Go模板语法:
docker inspect <CONTAINER_ID> | jq .[].Mounts
第一个jq操作jq .[]将对象{}包装器剥离。
第二个jq操作将返回所有Mount项。
其他回答
docker inspect -f '{{ json .Mounts }}' containerid | jq '.[]'
对于Docker 1.8,我使用:
$ docker inspect -f "{{ .Config.Volumes }}" 957d2dd1d4e8
map[/xmount/dvol.01:{}]
$
如果你想列出所有的容器名称和每个容器的相关卷,你可以尝试这样做:
docker ps -q | xargs docker container inspect -f '{{ .Name }} {{ .HostConfig.Binds }}'
示例输出:
/ opt_rundeck_1 [/ opt / var /李勃/ mysql: / var /李勃/ mysql: rw / var /李勃/ rundeck / var /储存:/ var /李勃/ rundeck / var /储存:rw / opt / var / rundeck / .ssh: / var /李勃/ rundeck / .ssh: rw / etc / / opt / etc / rundeck: rundeck: rw / var / log / rundeck: / var / log / rundeck: rw / opt / rundeck-plugins: / opt / rundeck-plugins: rw / opt / var / rundeck: / var / rundeck: rw]
/ opt_r十一k_1 -容器名称
(. .-附在容器上的卷
这是我的版本,找到一个码头撰写挂载点。 在使用此备份卷时。
# for Id in $(docker-compose -f ~/ida/ida.yml ps -q); do docker inspect -f '{{ (index .Mounts 0).Source }}' $Id; done
/data/volumes/ida_odoo-db-data/_data
/data/volumes/ida_odoo-web-data/_data
这是以前解决方案的组合。
使用Type:Source:Destination格式打印挂载:
docker container inspect \
-f '{{range .Mounts}}{{.Type}}:{{.Source}}:{{.Destination}}{{println}}{{ end }}' \
<containerId>
只打印Type="volume"的mount的Source:
docker container inspect \
-f '{{range .Mounts}}{{ if eq .Type "volume" }}{{println .Source }}{{ end }}{{end}}' \
<containerId>