docker / docker/docker-py

Proper way to list container's "bind"-type volumes, ie. bind mounts?

Open
#1,903 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

kind/question
Dominant language
Python
Stars
7.2k
Forks
1.7k
Avg merge
13d 8h
Merged PRs (30d)
2

Description

It's fairly easy to go through container.attrs to find its bind mounts.

def get_bind_mounts(container):
    bind_mounts = []
    for mount in container.attrs['Mounts']:
        if mount['Type'] == 'bind':
            bind_mounts.append(mount)
    return bind_mounts

Or more succinctly:

def get_bind_mounts(container):
    return [mount for mount in container.attrs['Mounts'] if mount['Type'] == 'bind']

Is there some more proper way to do this in docker-py? I looked through the docs, and don't see anything better. Perhaps a new container attribute/property, bind_mounts could be added that encapsulates this?

class Container(Model):
...
    @property
    def bind_mounts(self):
        """
        List of the bind mounts of the container.
        """
        return [mount for mount in container.attrs['Mounts'] if mount['Type'] == 'bind']

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by checking the Container model and its existing attrs-based properties. Compare the proposed bind_mounts property with the current Mounts data and surrounding API conventions; done means exposing bind-type mounts through a documented container attribute without changing existing access.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, python
Domain
devops
Issue type
Feature
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.