如何使用 docker-py 运行 docker 标记

How to run docker tag using docker-py

在命令行中,您可以运行 docker tag [from] [to] 给图像另一个名字。 documentation 未提供有关如何以编程方式执行此操作的任何信息。

如何使用docker-py来做一个docker标签操作?

它不在文档中,但 Image 对象有一个 tag 方法。

如果你运行

>>> dir(docker.from_env().images.get('my_image:latest'))
['__class__', '__delattr__', '__dict__', '__doc__', '__eq__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'attrs', 'client', 'collection', 'history', 'id', 'id_attribute', 'labels', 'reload', 'save', 'short_id', 'tag', 'tags']

奇怪的是有一个 tag 属性。

>>> docker.from_env().images.get('my_image:latest').tag
<bound method Image.tag of <Image: 'my_image:latest'>>

运行 它产生:

>>> docker.from_env().images.get('my_image:latest').tag('my_image:foobar')
True

运行 docker images 命令行显示标记操作成功。

docker.from_env().images.get('my_image:latest').tag.__doc__
Tag this image into a repository. Similar to the ``docker tag``
        command.

        Args:
            repository (str): The repository to set for the tag
            tag (str): The tag name
            force (bool): Force

        Raises:
            :py:class:`docker.errors.APIError`
                If the server returns an error.

        Returns:
            (bool): ``True`` if successful