Allow an Image to be deleted by calling the remove() method on it,
just like a Volume.

Signed-off-by: Ahmon Dancy <dancy@dancysoft.com>
Signed-off-by: Milas Bowman <milas.bowman@docker.com>
Co-authored-by: Ahmon Dancy <dancy@dancysoft.com>
This commit is contained in:
Milas Bowman 2022-07-29 15:28:16 -04:00 коммит произвёл GitHub
Родитель 26753c81de
Коммит 868e996269
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 28 добавлений и 0 удалений

Просмотреть файл

@ -61,6 +61,24 @@ class Image(Model):
"""
return self.client.api.history(self.id)
def remove(self, force=False, noprune=False):
"""
Remove this image.
Args:
force (bool): Force removal of the image
noprune (bool): Do not delete untagged parents
Raises:
:py:class:`docker.errors.APIError`
If the server returns an error.
"""
return self.client.api.remove_image(
self.id,
force=force,
noprune=noprune,
)
def save(self, chunk_size=DEFAULT_DATA_CHUNK_SIZE, named=False):
"""
Get a tarball of an image. Similar to the ``docker save`` command.

Просмотреть файл

@ -150,6 +150,16 @@ class ImageTest(unittest.TestCase):
image.history()
client.api.history.assert_called_with(FAKE_IMAGE_ID)
def test_remove(self):
client = make_fake_client()
image = client.images.get(FAKE_IMAGE_ID)
image.remove()
client.api.remove_image.assert_called_with(
FAKE_IMAGE_ID,
force=False,
noprune=False,
)
def test_save(self):
client = make_fake_client()
image = client.images.get(FAKE_IMAGE_ID)