A Python library for the Docker Engine API

Overview

Docker SDK for Python

Build Status

A Python library for the Docker Engine API. It lets you do anything the docker command does, but from within Python apps – run containers, manage containers, manage Swarms, etc.

Installation

The latest stable version is available on PyPI. Either add docker to your requirements.txt file or install with pip:

pip install docker

If you are intending to connect to a docker host via TLS, add docker[tls] to your requirements instead, or install with pip:

pip install docker[tls]

Usage

Connect to Docker using the default socket or the configuration in your environment:

import docker
client = docker.from_env()

You can run containers:

>>> client.containers.run("ubuntu:latest", "echo hello world")
'hello world\n'

You can run containers in the background:

>>> client.containers.run("bfirsh/reticulate-splines", detach=True)
<Container '45e6d2de7c54'>

You can manage containers:

>>> client.containers.list()
[<Container '45e6d2de7c54'>, <Container 'db18e4f20eaa'>, ...]

>>> container = client.containers.get('45e6d2de7c54')

>>> container.attrs['Config']['Image']
"bfirsh/reticulate-splines"

>>> container.logs()
"Reticulating spline 1...\n"

>>> container.stop()

You can stream logs:

>>> for line in container.logs(stream=True):
...   print(line.strip())
Reticulating spline 2...
Reticulating spline 3...
...

You can manage images:

>>> client.images.pull('nginx')
<Image 'nginx'>

>>> client.images.list()
[<Image 'ubuntu'>, <Image 'nginx'>, ...]

Read the full documentation to see everything you can do.

Comments
  • SSL: CERTIFICATE_VERIFY_FAILED error with boot2docker

    SSL: CERTIFICATE_VERIFY_FAILED error with boot2docker

    Using the latest versions of docker-py and boot2docker I'm unable to make simple requests, receiving an SSL: CERTIFICATE_VERIFY_FAILED error.

    Given the following test case.

    > cat test.py
    from docker.client import Client
    from docker.utils import kwargs_from_env
    
    kwargs = kwargs_from_env()
    
    client = Client(**kwargs)
    print client.version()
    

    I get the following error:

    python test.py                                                                                                                                                                                                     ~/Documents/puppet2docker
    Traceback (most recent call last):
      File "test.py", line 10, in <module>
        print client.version()
      File "/Users/garethr/Documents/puppet2docker/lib/python2.7/site-packages/docker_py-0.7.1-py2.7.egg/docker/client.py", line 986, in version
        return self._result(self._get(self._url("/version")), True)
      File "/Users/garethr/Documents/puppet2docker/lib/python2.7/site-packages/docker_py-0.7.1-py2.7.egg/docker/client.py", line 81, in _get
        return self.get(url, **self._set_request_timeout(kwargs))
      File "/Users/garethr/Documents/puppet2docker/lib/python2.7/site-packages/requests-2.4.3-py2.7.egg/requests/sessions.py", line 469, in get
        return self.request('GET', url, **kwargs)
      File "/Users/garethr/Documents/puppet2docker/lib/python2.7/site-packages/requests-2.4.3-py2.7.egg/requests/sessions.py", line 457, in request
        resp = self.send(prep, **send_kwargs)
      File "/Users/garethr/Documents/puppet2docker/lib/python2.7/site-packages/requests-2.4.3-py2.7.egg/requests/sessions.py", line 569, in send
        r = adapter.send(request, **kwargs)
      File "/Users/garethr/Documents/puppet2docker/lib/python2.7/site-packages/requests-2.4.3-py2.7.egg/requests/adapters.py", line 420, in send
        raise SSLError(e, request=request)
    requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:581)
    

    Looking further, kwargs_to_env does appear to have picked everything up correctly:

    (Pdb) kwargs['tls'].__dict__
    {'assert_hostname': None, 'cert': ('/Users/garethr/.boot2docker/certs/boot2docker-vm/cert.pem', '/Users/garethr/.boot2docker/certs/boot2docker-vm/key.pem'), 'ssl_version': 5, 'verify': '/Users/garethr/.boot2docker/certs/boot2docker-vm/ca.pem'}
    

    And the referenced certs exist:

    ls /Users/garethr/.boot2docker/certs/boot2docker-vm/
    ca.pem   cert.pem key.pem
    

    I'm using Python 2.7.9 on OSX.

    > python --version
    Python 2.7.9
    

    And using docker-py 0.7.1 and boot2docker v1.4.1.

    > pip list                                                                                                                                                         backports.ssl-match-hostname (3.4.0.2)
    cement (2.4.0)
    docker-py (0.7.1)
    pip (1.5.6)
    puppet-docker (0.1.0)
    requests (2.4.3)
    setuptools (3.6)
    six (1.9.0)
    websocket-client (0.23.0)
    wsgiref (0.1.2)
    
    > boot2docker version
    Boot2Docker-cli version: v1.4.1
    Git commit: 43241cb
    

    Note that with the above environment, I can successfully use the official docker CLI.

    > docker version
    Client version: 1.4.1
    Client API version: 1.16
    Go version (client): go1.3.3
    Git commit (client): 5bc2ff8
    OS/Arch (client): darwin/amd64
    Server version: 1.4.1
    Server API version: 1.16
    Go version (server): go1.3.3
    Git commit (server): 5bc2ff8
    
    status/need-info group/documentation 
    opened by garethr 42
  • Add device requests

    Add device requests

    Another take on #2395: while the Docker CLI adds a --gpus parameter, it is in fact syntatic sugar for the DeviceRequests argument in a container's host config. This PR adds support for any kind of device request, as it seems the API was designed to handle more in the future than just GPUs.

    It would still be possible to support another gpus=... argument in a way similar to #2465, that could handle the previous nvidia runtime and set the environment variables itself or use the new device requests.

    For example, with NVIDIA's test image, the equivalent of --gpus all would be:

    client.containers.run(
        'nvidia/cuda:9.0-base',
        'nvidia-smi',
        device_requests=[
            docker.types.DeviceRequest(count=-1, capabilities=[['gpu']])
        ]
    )
    

    The equivalent of --gpus 2 would be DeviceRequest(count=2, capabilities=[['gpu']]).

    And for something like --gpus device=GPU-c6e298ba-aa33-4083-8ae3-db4e27037475,driver=nvidia,capabilities="utility,display":

    client.containers.run(
        'nvidia/cuda:9.0-base',
        'nvidia-smi',
        device_requests=[
            docker.types.DeviceRequest(
                driver='nvidia',
                device_ids=['GPU-c6e298ba-aa33-4083-8ae3-db4e27037475'],
                capabilities=[
                    ['gpu', 'utility', 'display']
                ]
            )
        ]
    )
    
    opened by Lucidiot 32
  • tlsv1 alert protocol version on 1.7.1 and 1.7.2 but not on 1.7.0

    tlsv1 alert protocol version on 1.7.1 and 1.7.2 but not on 1.7.0

    Similar to #949 I'm discovering issues with latest versions of docker-py running against docker 1.10.2 instance. I'm using docker.utils.kwargs_from_env(assert_hostname=False). Things work fine with version 1.7.0.

    Docker client is initialized via

    client = docker.Client(
        version='auto',
        **docker.utils.kwargs_from_env(assert_hostname=False))
    

    with docker environment variables being set to the following (via docker-machine)

    DOCKER_HOST=tcp://192.168.156.137:2376
    DOCKER_MACHINE_NAME=dev2
    DOCKER_TLS_VERIFY=1
    DOCKER_CERT_PATH=/Users/benjixx/.docker/machine/machines/dev2
    

    docker-py 1.7.1 and 1.7.2 now raise the following exception:

    DockerException: Error while fetching server API version: [Errno 1] _ssl.c:507: error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
    

    Any idea what's happening here?

    kind/bug 
    opened by benjixx 27
  • Fix lost data & hangs when reading chunked streams

    Fix lost data & hangs when reading chunked streams

    I managed to track down a hang when calling build() to a problem handling streams.

    strace proved that the problem was somewhere in the python client and I manage to create a test harness for this issue.

    This is not the most elegant fix, I could do with some advice:

    • I've changed the return value of attach_socket
    • In _stream_helper it creates a new fileobj, when we just threw away the one which had our data buffer in it, we could just keep the old one.
    opened by leth 27
  • error while using docker for mac client 2.5.0.0

    error while using docker for mac client 2.5.0.0

    Using python 3.8.5 and docker-py version 4.3.1

      File "/Users/mmoskwa/.local/share/virtualenvs/lunchbox-5JMc0Mx2/lib/python3.8/site-packages/docker/models/containers.py", line 887, in get
        resp = self.client.api.inspect_container(container_id)
      File "/Users/mmoskwa/.local/share/virtualenvs/lunchbox-5JMc0Mx2/lib/python3.8/site-packages/docker/utils/decorators.py", line 19, in wrapped
        return f(self, resource_id, *args, **kwargs)
      File "/Users/mmoskwa/.local/share/virtualenvs/lunchbox-5JMc0Mx2/lib/python3.8/site-packages/docker/api/container.py", line 771, in inspect_container
        self._get(self._url("/containers/{0}/json", container)), True
      File "/Users/mmoskwa/.local/share/virtualenvs/lunchbox-5JMc0Mx2/lib/python3.8/site-packages/docker/utils/decorators.py", line 46, in inner
        return f(self, *args, **kwargs)
      File "/Users/mmoskwa/.local/share/virtualenvs/lunchbox-5JMc0Mx2/lib/python3.8/site-packages/docker/api/client.py", line 228, in _get
        return self.get(url, **self._set_request_timeout(kwargs))
      File "/Users/mmoskwa/.local/share/virtualenvs/lunchbox-5JMc0Mx2/lib/python3.8/site-packages/requests/sessions.py", line 543, in get
        return self.request('GET', url, **kwargs)
      File "/Users/mmoskwa/.local/share/virtualenvs/lunchbox-5JMc0Mx2/lib/python3.8/site-packages/requests/sessions.py", line 530, in request
        resp = self.send(prep, **send_kwargs)
      File "/Users/mmoskwa/.local/share/virtualenvs/lunchbox-5JMc0Mx2/lib/python3.8/site-packages/requests/sessions.py", line 685, in send
        r.content
      File "/Users/mmoskwa/.local/share/virtualenvs/lunchbox-5JMc0Mx2/lib/python3.8/site-packages/requests/models.py", line 829, in content
        self._content = b''.join(self.iter_content(CONTENT_CHUNK_SIZE)) or b''
      File "/Users/mmoskwa/.local/share/virtualenvs/lunchbox-5JMc0Mx2/lib/python3.8/site-packages/requests/models.py", line 754, in generate
        raise ChunkedEncodingError(e)
    requests.exceptions.ChunkedEncodingError: ('Connection broken: IncompleteRead(0 bytes read)', IncompleteRead(0 bytes read))
    
    opened by mattmoskwa 25
  • Fix to enable streaming container logs reliably

    Fix to enable streaming container logs reliably

    This patch is based on @kevinastone 's code in: https://github.com/docker/docker-py/issues/300#issuecomment-55320544

    Started a ubuntu container that just runs "ping 8.8.8.8" and tried the sample code in https://gist.github.com/dims/c3327f633c526847c8e5 to recreate the problem mentioned in: https://github.com/docker/docker-py/issues/300

    To debug the problem i printed the byte array read in recvall when reading STREAM_HEADER_SIZE_BYTES and realized that the data being read was far ahead of the actual start of the header documented in the vnd.docker.raw-stream of the docker remote api. This is possibly because the requests/urllib3 is reading ahead a bit more and we shouldn't be trying to hack the internals of those projects. So just using the documented file-like response.raw is good enough for us to get the functionality we need which is being able to read for exactly where the stream header starts. With this change i can reliably stream the logs just like "docker logs --follow".

    opened by dims 22
  • requests.exceptions.SSLError: hostname '192.168.59.103' doesn't match 'boot2docker'

    requests.exceptions.SSLError: hostname '192.168.59.103' doesn't match 'boot2docker'

    Hey guys,

    I'm try to access some boot2docker (1.3.1 - mac) VMs built under custom name with docker-py (latest pip version - 0.6.0), and it seems there is something wrong in the SSL module.

    [[email protected] ~:]$    export DOCKER_HOST=tcp://192.168.59.103:2376
    [[email protected] ~:]$    export DOCKER_CERT_PATH=/Users/thibaultbronchain/.boot2docker/certs/Docker-Wordpress-NoASG-DualNode-0
    [[email protected] ~:]$    export DOCKER_TLS_VERIFY=1
    [[email protected] ~:]$python
    Python 2.7.6 (default, Sep  9 2014, 15:04:36)
    [GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import docker
    >>> from docker.client import Client
    >>> from docker.utils import kwargs_from_env
    >>> client = docker.Client(**kwargs_from_env())
    >>> kwargs_from_env()
    {'tls': <docker.tls.TLSConfig object at 0x10a970b10>, 'base_url': 'https://192.168.59.103:2376'}
    >>> client.images()
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/Library/Python/2.7/site-packages/docker/client.py", line 634, in images
        res = self._result(self._get(self._url("/images/json"), params=params),
      File "/Library/Python/2.7/site-packages/docker/client.py", line 76, in _get
        return self.get(url, **self._set_request_timeout(kwargs))
      File "/Library/Python/2.7/site-packages/requests/sessions.py", line 469, in get
        return self.request('GET', url, **kwargs)
      File "/Library/Python/2.7/site-packages/requests/sessions.py", line 457, in request
        resp = self.send(prep, **send_kwargs)
      File "/Library/Python/2.7/site-packages/requests/sessions.py", line 569, in send
        r = adapter.send(request, **kwargs)
      File "/Library/Python/2.7/site-packages/requests/adapters.py", line 420, in send
        raise SSLError(e, request=request)
    requests.exceptions.SSLError: hostname '192.168.59.103' doesn't match 'boot2docker'
    >>> ^D
    [[email protected] ~:]$docker images
    REPOSITORY          TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
    

    Thanks for the help!

    opened by tbronchain 22
  • Support for .dockerignore

    Support for .dockerignore

    According to https://docs.docker.com/reference/builder/#dockerignore you can have a .dockerignore file that prevents items from being ADDed. Mine looks like this:

    .git
    

    And then in my Dockerfile I have

    ADD . /root/mycodes/
    

    Unfortunately I still see /root/mycodes/.git in my container, which is sad because it's almost 300M. Is there any way to support this?

    group/api-upgrade kind/feature-request 
    opened by hamiltont 22
  • WIP: Adding nvidia-docker support

    WIP: Adding nvidia-docker support

    Currently just a proof of concept for nvidia-docker support, as discussed in docker/compose#4657

    TL;DR;

    It's working at least. Automatically used nvidia-docker mounts when starting a container with GPU support


    There's a number of things I'm not 100% happy with yet.

    1. Where I had to put the code (at the very least I should put it in its own function)
    2. It's pretty fragile right now.
      • If you don't have nvidia on your host, it'll probably fail because devices don't exist
      • If you specify a bad GPU with NV_GPU it will fail. But this is the same behavior as nvidia-docker, this this is perhaps ok
    3. If you want to disable the nvidia-docker support feature, there's nothing to do that with.

    I'd like some guidance to these issues and what direction you would like me to go in.

    opened by andyneff 20
  • Add utility to create a build context from a git repository.

    Add utility to create a build context from a git repository.

    The reason is because it won't work if you pass a private git repository as the build URL.

    See docker/compose#2856 for more information, including a simple test-case by @zkf.

    Instead, docker-py should follow the same steps as docker: if the build URL is a git repository, it should clone the repo locally and pass as a tarball to the daemon.

    I believe the problem is caused by how docker-py performs a build (here) instead of following the same steps as docker.

    Please let me know if I'm misunderstanding the problem or if there's any other way I can help.

    Here is my version information:

    OS X El Capitan 10.11.2 (15C50)
    docker-py==1.8.0.dev0
    Python 2.7.9
    Client:
     Version:      1.11.0-dev
     API version:  1.23
     Go version:   go1.6
     Git commit:   bc730f3-unsupported
     Built:        Tue Mar  8 19:01:29 2016
     OS/Arch:      linux/amd64
    
    Server:
     Version:      1.11.0-dev
     API version:  1.23
     Go version:   go1.6
     Git commit:   bc730f3-unsupported
     Built:        Tue Mar  8 19:01:29 2016
     OS/Arch:      linux/amd64
    
    kind/feature-request 
    opened by apeace 20
  • docker-py cannot bind local files into a container?

    docker-py cannot bind local files into a container?

    hi,all! I ofen bind host files into containers by using "-v /path/to/host/file:/container/file:ro", when I using command line client. But now, I need to use docker-py to manage my containers. And I also need to do the same work:bind some host files into containers. And my code is like this (for example)


    ......
    "volumes":["/etc/localtime"],
    ......
    "binds":{
            "/etc/localtime":{
                     "bind":"/etc/localtime",
                     "ro":true
            }
    },
    

    unfortunately, problem emerged: APIError: 500 Server Error: Internal Server Error ( "Cannot start container 1c1......d7051: setup mount namespace mounting /var/lib/docker/vfs/dir/575....9f73 into /var/lib/docker/devicemapper/mnt/1c1f7f.....1edd7051/rootfs/etc/localtime not a directory")

    what is the solution?

    kind/bug level/docker-engine 
    opened by wuyudian1 20
  • Weird behavior with follow=True blocking execution when running container exits

    Weird behavior with follow=True blocking execution when running container exits

    Environment:

    OS: Ubuntu 22.04.1 LTS Docker Engine: 20.10.21 Python version: 3.10.6 docker-py: 6.0.1

    Context

    The Python script below runs wrapped by a GitLab runner process that is a CLI application written with Typer. The logging driver of Docker is journald

    GitLab Runner: 15.6.1 Typer: 0.7.0

    Question

    I am trying to print logs from a running container. (it's execution is very fast)

    import docker
    
    cli = docker.from_env()
    container = cli.containers.run(image=image, detach=True, remove=False)
    
    for cl in container.logs(stream=True, follow=True):
        typer.secho(cl.strip(), fg=typer.colors.BLUE)
    
    container.remove()
    

    For a reason, container.logs(stream=True, follow=True) is acting weirdly whenever the detached container exits. Sometimes the execution of my program resumes and finishes properly and very often, the underlying container exits and my program get stuck in the for loop, doing nothing.

    This has for consequence that jobs running in GitLab are timeouting due to no exit code of my cli.

    It seems most likely system related since I can run the cli from my laptop without trouble. Any ideas from where the problem could come?

    opened by MadJlzz 0
  • Add `network_driver_opt` to client.containers run and create

    Add `network_driver_opt` to client.containers run and create

    This pull request adds an additional parameter to client.containers.run and client.containers.create called network_driver_opt.

    This parameter allows to specify a dict which allows to pass to the driver some custom values, and it is the same already present in Network.connect.

    I requested this feature in #2896, but it was never implemented.

    I think it could be useful to also export other parameters of networking_config.

    opened by Skazza94 0
  • build(deps): Bump setuptools from 63.2.0 to 65.5.1

    build(deps): Bump setuptools from 63.2.0 to 65.5.1

    Bumps setuptools from 63.2.0 to 65.5.1.

    Changelog

    Sourced from setuptools's changelog.

    v65.5.1

    Misc ^^^^

    • #3638: Drop a test dependency on the mock package, always use :external+python:py:mod:unittest.mock -- by :user:hroncok
    • #3659: Fixed REDoS vector in package_index.

    v65.5.0

    Changes ^^^^^^^

    • #3624: Fixed editable install for multi-module/no-package src-layout projects.
    • #3626: Minor refactorings to support distutils using stdlib logging module.

    Documentation changes ^^^^^^^^^^^^^^^^^^^^^

    • #3419: Updated the example version numbers to be compliant with PEP-440 on the "Specifying Your Project’s Version" page of the user guide.

    Misc ^^^^

    • #3569: Improved information about conflicting entries in the current working directory and editable install (in documentation and as an informational warning).
    • #3576: Updated version of validate_pyproject.

    v65.4.1

    Misc ^^^^

    v65.4.0

    Changes ^^^^^^^

    v65.3.0

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Examples

    Examples

    Hi, it would be great if you guys could provide more example scripts for building specific images, automating docker container builds and running multiple commands inside a single container. Apologies if there are examples already, I haven't seemed to find many. I know in the documentation there are some line by line examples, but I didn't find them explanatory enough and I am struggling a fair bit with docker.

    opened by James-Ilosta 0
  • Can't start container. Unsure why

    Can't start container. Unsure why

    I’m trying to run docker at the moment from the python api. I’m just trying to make a container and then run commands using the exec_run command, however, my container seems to exit immediately after using the following:

    import docker from docker.types import Mount

    import os

    client = docker.from_env() source_directory = "C:\Users\usr\data" target="/data" volume=os.getcwd() + "/data"

    image_selected='openfoam/openfoam7-paraview56' container=client.api.create_container(image_selected) container=client.containers.get(container['Id']) print(container) container.start()

    I’ve tried to add in a pause command with the following: container=client.api.create_container(image_selected, command="while true; do sleep 10000000; done")

    and this doesn’t have any effect and the container still exits immediately. image

    I don’t suppose you would have any idea on how to troubleshoot. As far as I’m aware there are no errors that are outputted.

    Here is the terminal output. I tried to use container.start() 2 times so that is why there are 3 of the initial messages:

    image

    Do you have any ideas?

    opened by James-Ilosta 2
Releases(6.0.1)
  • 6.0.1(Nov 2, 2022)

    🐛 Bugfixes

    • Fix for The pipe has been ended errors on Windows (#3056)
    • Support floats for timestamps in Docker logs (since / until) (#3031)

    What's Changed

    • docs: install package in ReadTheDocs build by @milas in https://github.com/docker/docker-py/pull/3032
    • Use latest stable syntax for Dockerfiles by @thaJeztah in https://github.com/docker/docker-py/pull/3035
    • feat: add support for floats to docker logs params since / until sinc… by @ArchiMoebius in https://github.com/docker/docker-py/pull/3031
    • Change prune test to use anonymous volumes by @cpuguy83 in https://github.com/docker/docker-py/pull/3051
    • socket: handle npipe close by @nicks in https://github.com/docker/docker-py/pull/3056

    New Contributors

    • @ArchiMoebius made their first contribution in https://github.com/docker/docker-py/pull/3031
    • @nicks made their first contribution in https://github.com/docker/docker-py/pull/3056

    Full Changelog: https://github.com/docker/docker-py/compare/6.0.0...6.0.1

    Source code(tar.gz)
    Source code(zip)
    docker-6.0.1-py3-none-any.whl(144.04 KB)
    docker-6.0.1.tar.gz(251.86 KB)
  • 6.0.0(Aug 18, 2022)

    ℹ️ Upgrade Notes

    • Minimum supported Python version is 3.7+
    • When installing with pip, the docker[tls] extra is deprecated and a no-op, use docker for same functionality (TLS support is always available now)
    • Native Python SSH client (used by default / use_ssh_client=False) will now reject unknown host keys with paramiko.ssh_exception.SSHException
    • Short IDs are now 12 characters instead of 10 characters (same as Docker CLI)
    • Version metadata is now exposed as __version__

    ✨ Features

    • Python 3.10 support
    • Automatically negotiate most secure TLS version
    • Add platform (e.g. linux/amd64, darwin/arm64) to container create & run
    • Add support for GlobalJob and ReplicatedJobs for Swarm
    • Add remove() method on Image
    • Add force param to disable() on Plugin

    🐛 Bugfixes

    • Fix install issues on Windows related to pywin32
    • Do not accept unknown SSH host keys in native Python SSH mode
    • Use 12 character short IDs for consistency with Docker CLI
    • Ignore trailing whitespace in .dockerignore files
    • Fix IPv6 host parsing when explicit port specified
    • Fix ProxyCommand option for SSH connections
    • Do not spawn extra subshell when launching external SSH client
    • Improve exception semantics to preserve context
    • Documentation improvements (formatting, examples, typos, missing params)

    🔧 Miscellaneous

    • Upgrade dependencies in requirements.txt to latest versions
    • Remove extraneous transitive dependencies
    • Eliminate usages of deprecated functions/methods
    • Test suite reliability improvements
    • GitHub Actions workflows for linting, unit tests, integration tests, and publishing releases

    Changelog

    • Update changelog for 5.0.3 by @aiordache in https://github.com/docker/docker-py/pull/2897
    • Add support for Python 3.10 by @hugovk in https://github.com/docker/docker-py/pull/2898
    • Bump paramiko from 2.8.0 to 2.10.1 by @dependabot in https://github.com/docker/docker-py/pull/2974
    • deps: upgrade pywin32 & relax version constraint by @milas in https://github.com/docker/docker-py/pull/3004
    • ci: remove Python 3.6 and add 3.11 pre-releases by @milas in https://github.com/docker/docker-py/pull/3005
    • utils: fix IPv6 address w/ port parsing by @milas in https://github.com/docker/docker-py/pull/3006
    • test_create_with_device_cgroup_rules: don't check devices.list by @thaJeztah in https://github.com/docker/docker-py/pull/2940
    • Fix exception semantics in _raise_for_status by @kmaork in https://github.com/docker/docker-py/pull/2954
    • tls: use auto-negotiated highest version by @milas in https://github.com/docker/docker-py/pull/3007
    • sshcon: remove use of self.ssh_conf by @glicht in https://github.com/docker/docker-py/pull/2993
    • Use packaging instead of distutils for Version by @FrancescoCasalegno in https://github.com/docker/docker-py/pull/2931
    • test: fix a couple flaky/broken tests by @milas in https://github.com/docker/docker-py/pull/3008
    • ci: add flake8 job by @milas in https://github.com/docker/docker-py/pull/3009
    • Fixes and improvements by @kinday in https://github.com/docker/docker-py/pull/2947
    • deps: test on Python 3.10 by default by @milas in https://github.com/docker/docker-py/pull/3010
    • deps: remove backports.ssl_match_hostname by @milas in https://github.com/docker/docker-py/pull/3011
    • Fix: fix CVE-2020-28243 by @errorcode7 in https://github.com/docker/docker-py/pull/2910
    • Fix for CWE-295: Improper Certificate Validation by @avnes in https://github.com/docker/docker-py/pull/2932
    • Set daemon attribute instead of using setDaemon method that was deprecated in Python 3.10 by @tirkarthi in https://github.com/docker/docker-py/pull/2823
    • Remove unnecessary pass statements by @vilhelmprytz in https://github.com/docker/docker-py/pull/2541
    • ci: run SSH integration tests by @milas in https://github.com/docker/docker-py/pull/3012
    • docs: fix simple typo, containe -> container by @timgates42 in https://github.com/docker/docker-py/pull/3015
    • ci: bump version to 6.0.0-dev by @milas in https://github.com/docker/docker-py/pull/3013
    • deps: upgrade & remove unnecessary dependencies by @milas in https://github.com/docker/docker-py/pull/3014
    • lint: fix line length violation by @milas in https://github.com/docker/docker-py/pull/3017
    • docs: fix markdown rendering by @milas in https://github.com/docker/docker-py/pull/3020
    • Return 12 character short_ids by @benfasoli in https://github.com/docker/docker-py/pull/2862
    • api: preserve cause when re-raising error by @milas in https://github.com/docker/docker-py/pull/3023
    • deps: upgrade websocket-client to latest by @milas in https://github.com/docker/docker-py/pull/3022
    • Add platform parameter for create_container() by @felixfontein in https://github.com/docker/docker-py/pull/2927
    • Support cgroupns option in containers.run/containers.create by @david0 in https://github.com/docker/docker-py/pull/2930
    • Prevent pip cache in Docker image to save image size by @PeterDaveHello in https://github.com/docker/docker-py/pull/2828
    • Update: allow "force" parameter in plugin.disable() by @till in https://github.com/docker/docker-py/pull/2843
    • Fix: Issue #2832 Allowing Rollback Config Arg for Services by @ercildoune in https://github.com/docker/docker-py/pull/2917
    • model: add remove() to Image by @milas in https://github.com/docker/docker-py/pull/3026
    • fix(dockerignore): trim trailing whitespace by @kalioz in https://github.com/docker/docker-py/pull/2733
    • Fix TLS server check example to actually verify by @scop in https://github.com/docker/docker-py/pull/2574
    • Clarify TLSConfig verify parameter docs by @scop in https://github.com/docker/docker-py/pull/2573
    • Add healthcheck doc for container.run by @JanoschDeurer in https://github.com/docker/docker-py/pull/2595
    • Fix image save example by @hristog in https://github.com/docker/docker-py/pull/2570
    • Changed a few words to be more clear by @InnovativeInventor in https://github.com/docker/docker-py/pull/2489
    • docs: fix RollbackConfig/Order values by @milas in https://github.com/docker/docker-py/pull/3027
    • ci: add workflow for releases by @milas in https://github.com/docker/docker-py/pull/3018
    • remove duplicate 'on' in comment by @thomasgassmann in https://github.com/docker/docker-py/pull/2370
    • Add gzip documentation to BuildApiMixin by @SauravMaheshkar in https://github.com/docker/docker-py/pull/2929
    • Use preexec_func always by @q0w in https://github.com/docker/docker-py/pull/2920
    • Remove docker.credentials.utils.find_executable by @n1ngu in https://github.com/docker/docker-py/pull/3028
    • Support global-job and replicated-job modes in Docker Swarm by @kinday in https://github.com/docker/docker-py/pull/3016
    • docs: add changelog for 6.0.0 by @milas in https://github.com/docker/docker-py/pull/3019
    • Add sysctl support for docker swarm services by @Aadenei in https://github.com/docker/docker-py/pull/3029
    • Connect with mac address by @YuviGold in https://github.com/docker/docker-py/pull/2481
    • docs/css: remove hyphens in literals by @jrabbit in https://github.com/docker/docker-py/pull/2452
    • Add swarm support for DataPathPort by @dexteradeus in https://github.com/docker/docker-py/pull/2987
    • test: add additional tests for cgroupns option by @milas in https://github.com/docker/docker-py/pull/3024

    New Contributors

    • @hugovk made their first contribution in https://github.com/docker/docker-py/pull/2898
    • @milas made their first contribution in https://github.com/docker/docker-py/pull/3004
    • @kmaork made their first contribution in https://github.com/docker/docker-py/pull/2954
    • @glicht made their first contribution in https://github.com/docker/docker-py/pull/2993
    • @FrancescoCasalegno made their first contribution in https://github.com/docker/docker-py/pull/2931
    • @kinday made their first contribution in https://github.com/docker/docker-py/pull/2947
    • @errorcode7 made their first contribution in https://github.com/docker/docker-py/pull/2910
    • @avnes made their first contribution in https://github.com/docker/docker-py/pull/2932
    • @tirkarthi made their first contribution in https://github.com/docker/docker-py/pull/2823
    • @vilhelmprytz made their first contribution in https://github.com/docker/docker-py/pull/2541
    • @timgates42 made their first contribution in https://github.com/docker/docker-py/pull/3015
    • @benfasoli made their first contribution in https://github.com/docker/docker-py/pull/2862
    • @felixfontein made their first contribution in https://github.com/docker/docker-py/pull/2927
    • @david0 made their first contribution in https://github.com/docker/docker-py/pull/2930
    • @PeterDaveHello made their first contribution in https://github.com/docker/docker-py/pull/2828
    • @till made their first contribution in https://github.com/docker/docker-py/pull/2843
    • @ercildoune made their first contribution in https://github.com/docker/docker-py/pull/2917
    • @kalioz made their first contribution in https://github.com/docker/docker-py/pull/2733
    • @JanoschDeurer made their first contribution in https://github.com/docker/docker-py/pull/2595
    • @hristog made their first contribution in https://github.com/docker/docker-py/pull/2570
    • @InnovativeInventor made their first contribution in https://github.com/docker/docker-py/pull/2489
    • @thomasgassmann made their first contribution in https://github.com/docker/docker-py/pull/2370
    • @SauravMaheshkar made their first contribution in https://github.com/docker/docker-py/pull/2929
    • @q0w made their first contribution in https://github.com/docker/docker-py/pull/2920
    • @n1ngu made their first contribution in https://github.com/docker/docker-py/pull/3028
    • @Aadenei made their first contribution in https://github.com/docker/docker-py/pull/3029
    • @jrabbit made their first contribution in https://github.com/docker/docker-py/pull/2452
    • @dexteradeus made their first contribution in https://github.com/docker/docker-py/pull/2987

    Full Changelog: https://github.com/docker/docker-py/compare/5.0.3...6.0.0

    Source code(tar.gz)
    Source code(zip)
    docker-6.0.0-py3-none-any.whl(143.78 KB)
    docker-6.0.0.tar.gz(251.54 KB)
  • 6.0.0b2(Aug 11, 2022)

    What's Changed

    • remove duplicate 'on' in comment by @thomasgassmann in https://github.com/docker/docker-py/pull/2370
    • Add gzip documentation to BuildApiMixin by @SauravMaheshkar in https://github.com/docker/docker-py/pull/2929
    • Use preexec_func always by @q0w in https://github.com/docker/docker-py/pull/2920
    • Remove docker.credentials.utils.find_executable by @n1ngu in https://github.com/docker/docker-py/pull/3028
    • Support global-job and replicated-job modes in Docker Swarm by @kinday in https://github.com/docker/docker-py/pull/3016
    • docs: add changelog for 6.0.0 by @milas in https://github.com/docker/docker-py/pull/3019

    New Contributors

    • @thomasgassmann made their first contribution in https://github.com/docker/docker-py/pull/2370
    • @SauravMaheshkar made their first contribution in https://github.com/docker/docker-py/pull/2929
    • @q0w made their first contribution in https://github.com/docker/docker-py/pull/2920
    • @n1ngu made their first contribution in https://github.com/docker/docker-py/pull/3028

    Full Changelog: https://github.com/docker/docker-py/compare/6.0.0b1...6.0.0b2

    Source code(tar.gz)
    Source code(zip)
    docker-6.0.0b2-py3-none-any.whl(143.47 KB)
    docker-6.0.0b2.tar.gz(250.92 KB)
  • 6.0.0b1(Jul 30, 2022)

    What's Changed

    • Update changelog for 5.0.3 by @aiordache in https://github.com/docker/docker-py/pull/2897
    • Add support for Python 3.10 by @hugovk in https://github.com/docker/docker-py/pull/2898
    • Bump paramiko from 2.8.0 to 2.10.1 by @dependabot in https://github.com/docker/docker-py/pull/2974
    • deps: upgrade pywin32 & relax version constraint by @milas in https://github.com/docker/docker-py/pull/3004
    • ci: remove Python 3.6 and add 3.11 pre-releases by @milas in https://github.com/docker/docker-py/pull/3005
    • utils: fix IPv6 address w/ port parsing by @milas in https://github.com/docker/docker-py/pull/3006
    • test_create_with_device_cgroup_rules: don't check devices.list by @thaJeztah in https://github.com/docker/docker-py/pull/2940
    • Fix exception semantics in _raise_for_status by @kmaork in https://github.com/docker/docker-py/pull/2954
    • tls: use auto-negotiated highest version by @milas in https://github.com/docker/docker-py/pull/3007
    • sshcon: remove use of self.ssh_conf by @glicht in https://github.com/docker/docker-py/pull/2993
    • Use packaging instead of distutils for Version by @FrancescoCasalegno in https://github.com/docker/docker-py/pull/2931
    • test: fix a couple flaky/broken tests by @milas in https://github.com/docker/docker-py/pull/3008
    • ci: add flake8 job by @milas in https://github.com/docker/docker-py/pull/3009
    • Fixes and improvements by @kinday in https://github.com/docker/docker-py/pull/2947
    • deps: test on Python 3.10 by default by @milas in https://github.com/docker/docker-py/pull/3010
    • deps: remove backports.ssl_match_hostname by @milas in https://github.com/docker/docker-py/pull/3011
    • Fix: fix CVE-2020-28243 by @errorcode7 in https://github.com/docker/docker-py/pull/2910
    • Fix for CWE-295: Improper Certificate Validation by @avnes in https://github.com/docker/docker-py/pull/2932
    • Set daemon attribute instead of using setDaemon method that was deprecated in Python 3.10 by @tirkarthi in https://github.com/docker/docker-py/pull/2823
    • Remove unnecessary pass statements by @vilhelmprytz in https://github.com/docker/docker-py/pull/2541
    • ci: run SSH integration tests by @milas in https://github.com/docker/docker-py/pull/3012
    • docs: fix simple typo, containe -> container by @timgates42 in https://github.com/docker/docker-py/pull/3015
    • ci: bump version to 6.0.0-dev by @milas in https://github.com/docker/docker-py/pull/3013
    • deps: upgrade & remove unnecessary dependencies by @milas in https://github.com/docker/docker-py/pull/3014
    • lint: fix line length violation by @milas in https://github.com/docker/docker-py/pull/3017
    • docs: fix markdown rendering by @milas in https://github.com/docker/docker-py/pull/3020
    • Return 12 character short_ids by @benfasoli in https://github.com/docker/docker-py/pull/2862
    • api: preserve cause when re-raising error by @milas in https://github.com/docker/docker-py/pull/3023
    • deps: upgrade websocket-client to latest by @milas in https://github.com/docker/docker-py/pull/3022
    • Add platform parameter for create_container() by @felixfontein in https://github.com/docker/docker-py/pull/2927
    • Support cgroupns option in containers.run/containers.create by @david0 in https://github.com/docker/docker-py/pull/2930
    • Prevent pip cache in Docker image to save image size by @PeterDaveHello in https://github.com/docker/docker-py/pull/2828
    • Update: allow "force" parameter in plugin.disable() by @till in https://github.com/docker/docker-py/pull/2843
    • Fix: Issue #2832 Allowing Rollback Config Arg for Services by @ercildoune in https://github.com/docker/docker-py/pull/2917
    • model: add remove() to Image by @milas in https://github.com/docker/docker-py/pull/3026
    • fix(dockerignore): trim trailing whitespace by @kalioz in https://github.com/docker/docker-py/pull/2733
    • Fix TLS server check example to actually verify by @scop in https://github.com/docker/docker-py/pull/2574
    • Clarify TLSConfig verify parameter docs by @scop in https://github.com/docker/docker-py/pull/2573
    • Add healthcheck doc for container.run by @JanoschDeurer in https://github.com/docker/docker-py/pull/2595
    • Fix image save example by @hristog in https://github.com/docker/docker-py/pull/2570
    • Changed a few words to be more clear by @InnovativeInventor in https://github.com/docker/docker-py/pull/2489
    • docs: fix RollbackConfig/Order values by @milas in https://github.com/docker/docker-py/pull/3027
    • ci: add workflow for releases by @milas in https://github.com/docker/docker-py/pull/3018

    New Contributors

    • @hugovk made their first contribution in https://github.com/docker/docker-py/pull/2898
    • @milas made their first contribution in https://github.com/docker/docker-py/pull/3004
    • @kmaork made their first contribution in https://github.com/docker/docker-py/pull/2954
    • @glicht made their first contribution in https://github.com/docker/docker-py/pull/2993
    • @FrancescoCasalegno made their first contribution in https://github.com/docker/docker-py/pull/2931
    • @kinday made their first contribution in https://github.com/docker/docker-py/pull/2947
    • @errorcode7 made their first contribution in https://github.com/docker/docker-py/pull/2910
    • @avnes made their first contribution in https://github.com/docker/docker-py/pull/2932
    • @tirkarthi made their first contribution in https://github.com/docker/docker-py/pull/2823
    • @vilhelmprytz made their first contribution in https://github.com/docker/docker-py/pull/2541
    • @timgates42 made their first contribution in https://github.com/docker/docker-py/pull/3015
    • @benfasoli made their first contribution in https://github.com/docker/docker-py/pull/2862
    • @felixfontein made their first contribution in https://github.com/docker/docker-py/pull/2927
    • @david0 made their first contribution in https://github.com/docker/docker-py/pull/2930
    • @PeterDaveHello made their first contribution in https://github.com/docker/docker-py/pull/2828
    • @till made their first contribution in https://github.com/docker/docker-py/pull/2843
    • @ercildoune made their first contribution in https://github.com/docker/docker-py/pull/2917
    • @kalioz made their first contribution in https://github.com/docker/docker-py/pull/2733
    • @JanoschDeurer made their first contribution in https://github.com/docker/docker-py/pull/2595
    • @hristog made their first contribution in https://github.com/docker/docker-py/pull/2570
    • @InnovativeInventor made their first contribution in https://github.com/docker/docker-py/pull/2489

    Full Changelog: https://github.com/docker/docker-py/compare/5.0.3...6.0.0b1

    Source code(tar.gz)
    Source code(zip)
    docker-6.0.0b1-py3-none-any.whl(143.54 KB)
    docker-6.0.0b1.tar.gz(250.08 KB)
  • 5.0.3(Oct 7, 2021)

  • 5.0.2(Sep 1, 2021)

  • 5.0.1(Aug 31, 2021)

  • 5.0.0(Apr 6, 2021)

    List of PRs / issues for this release

    Breaking changes

    • Remove support for Python 2.7
    • Make Python 3.6 the minimum version supported

    Features

    • Add limit parameter to image search endpoint

    Bugfixes

    • Fix KeyError exception on secret create
    • Verify TLS keys loaded from docker contexts
    • Update PORT_SPEC regex to allow square brackets for IPv6 addresses
    • Fix containers and images documentation examples
    Source code(tar.gz)
    Source code(zip)
  • 4.4.4(Feb 24, 2021)

  • 4.4.3(Feb 18, 2021)

  • 4.4.2(Feb 15, 2021)

  • 4.4.1(Jan 7, 2021)

  • 4.4.0(Nov 23, 2020)

    List of PRs / issues for this release

    Features

    • Add an alternative SSH connection to the paramiko one, based on shelling out to the SSh client. Similar to the behaviour of Docker cli
    • Default image tag to latest on pull

    Bugfixes

    • Fix plugin model upgrade
    • Fix examples URL in ulimits

    Miscellaneous

    • Improve exception messages for server and client errors
    • Bump cryptography from 2.3 to 3.2
    Source code(tar.gz)
    Source code(zip)
  • 4.3.1(Aug 21, 2020)

  • 4.3.0(Aug 10, 2020)

    Changelog

    Features

    • Add DeviceRequest type to expose host resources such as GPUs
    • Add support for DriverOpts in EndpointConfig
    • Disable compression by default when using container.get_archive method

    Miscellaneous

    • Update default API version to v1.39
    • Update test engine version to 19.03.12
    Source code(tar.gz)
    Source code(zip)
  • 4.2.2(Jun 30, 2020)

  • 4.2.1(Jun 2, 2020)

  • 4.2.0(Feb 6, 2020)

    List of PRs / issues for this release

    Bugfixes

    • Fix win32pipe.WaitNamedPipe throw exception in Windows containers
    • Use Hostname, Username, Port and ProxyCommand settings from .ssh/config when on SSH
    • Set host key policy for ssh transport to paramiko.WarningPolicy()
    • Set logging level of paramiko to warn

    Features

    • Add support for docker contexts through docker.ContextAPI
    Source code(tar.gz)
    Source code(zip)
  • 4.1.0(Oct 3, 2019)

    List of PRs / issues for this release

    Bugfixes

    • Correct INDEX_URL logic in build.py _set_auth_headers
    • Fix for empty auth keys in config.json

    Features

    • Add NetworkAttachmentConfig for service create/update

    Miscellaneous

    • Bump pytest to 4.3.1
    • Adjust --platform tests for changes in docker engine
    • Update credentials-helpers to v0.6.3
    Source code(tar.gz)
    Source code(zip)
  • 4.0.2(Jun 20, 2019)

  • 4.0.1(May 19, 2019)

  • 4.0.0(May 19, 2019)

    List of PRs / issues for this release

    Breaking changes

    • Support for Python 3.3 and Python 3.4 has been dropped
    • APIClient.update_service, APIClient.init_swarm, and DockerClient.swarm.init now return a dict from the API's response body
    • In APIClient.build and DockerClient.images.build, the use_config_proxy parameter now defaults to True
    • init_path is no longer a valid parameter for HostConfig

    Features

    • It is now possible to provide SCTP ports for port mappings
    • ContainerSpecs now support the init parameter
    • DockerClient.swarm.init and APIClient.init_swarm now support the data_path_addr parameter
    • APIClient.update_swarm and DockerClient.swarm.update now support the rotate_manager_unlock_key parameter
    • APIClient.update_service returns the API's response body as a dict
    • APIClient.init_swarm, and DockerClient.swarm.init now return the API's response body as a dict

    Bugfixes

    • Fixed PlacementPreference instances to produce a valid API type
    • Fixed a bug where not setting a value for buildargs in build could cause the library to attempt accessing attributes of a None value
    • Fixed a bug where setting the volume_driver parameter in DockerClient.containers.create would result in an error
    • APIClient.inspect_distribution now correctly sets the authentication headers on the request, allowing it to be used with private repositories This change also applies to DockerClient.get_registry_data
    Source code(tar.gz)
    Source code(zip)
  • 3.7.2(Mar 28, 2019)

  • 3.7.1(Mar 20, 2019)

  • 3.7.0(Jan 10, 2019)

    List of PRs / issues for this release

    Features

    • Added support for multiplexed streams (for attach and exec_start). Learn more at https://docker-py.readthedocs.io/en/stable/user_guides/multiplex.html
    • Added the use_config_proxy parameter to the following methods: APIClient.build, APIClient.create_container, DockerClient.images.build and DockerClient.containers.run (False by default). This parameter will become True by default in the 4.0.0 release.
    • Placement preferences for Swarm services are better validated on the client and documentation has been updated accordingly

    Bugfixes

    • Fixed a bug where credential stores weren't queried for relevant registry credentials with certain variations of the config.json file.
    • DockerClient.swarm.init now returns a boolean value as advertised.
    Source code(tar.gz)
    Source code(zip)
  • 3.6.0(Nov 28, 2018)

    List of PRs / issues for this release

    Features

    • Added support for connecting to the Docker Engine over SSH. Additional dependencies for this feature can be installed with pip install "docker[ssh]"
    • Added support for the named parameter in Image.save, which may be used to ensure the resulting tarball retains the image's name on save.

    Bugfixes

    • Fixed a bug where builds on Windows with a context path using the \\?\ prefix would fail with some relative Dockerfile paths.
    • Fixed an issue where pulls made with the DockerClient would fail when setting the stream parameter to True.

    Miscellaneous

    • The minimum requirement for the requests dependency has been bumped to 2.20.0
    Source code(tar.gz)
    Source code(zip)
  • 3.5.1(Oct 17, 2018)

  • 3.5.0(Aug 10, 2018)

    List of PRs / issues for this release

    Deprecation warning

    • Support for Python 3.3 will be dropped in the 4.0.0 release

    Features

    • Updated dependencies to ensure support for Python 3.7 environments
    • Added support for the uts_mode parameter in HostConfig
    • The UpdateConfig constructor now allows rollback as a valid value for failure_action
    • Added support for rollback_config in APIClient.create_service, APIClient.update_service, DockerClient.services.create and Service.update.

    Bugfixes

    • Credential helpers are now properly leveraged by the build method
    • Fixed a bug that caused placement preferences to be ignored when provided to DockerClient.services.create
    • Fixed a bug that caused a user value of 0 to be ignored in APIClient.create_container and DockerClient.containers.create
    Source code(tar.gz)
    Source code(zip)
  • 3.4.1(Aug 9, 2018)

  • 3.4.0(Jun 18, 2018)

    List of PRs / issues for this release

    Features

    • The APIClient and DockerClient constructors now accept a credstore_env parameter. When set, values in this dictionary are added to the environment when executing the credential store process.

    Bugfixes

    • DockerClient.networks.prune now properly returns the operation's result
    • Fixed a bug that caused custom Dockerfile paths in a subfolder of the build context to be invalidated, preventing these builds from working
    • The plugin_privileges method can now be called for plugins requiring authentication to access
    • Fixed a bug that caused attempts to read a data stream over an unsecured TCP socket to crash on Windows clients
    • Fixed a bug where using the read_only parameter when creating a service using the DockerClient was being ignored
    • Fixed an issue where Service.scale would not properly update the service's mode, causing the operation to fail silently
    Source code(tar.gz)
    Source code(zip)
Owner
Docker
Docker provides a simple and powerful developer experience, workflows and collaboration for creating applications.
Docker
DeleteAllBot - Telegram bot to delete all messages in a group

Delete All Bot A star ⭐ from you means a lot to me ! Telegram bot to delete all

Stark Bots 15 Dec 26, 2022
Bypass Hcaptcha Purely based on http requests, Creates unlocked discord accounts if used correctly

hcaptcha-bypass-discord Bypass HCAPTCHA purely based on http requests Works for discord dosen't create locked accounts :)) HOW TO USE ◉ add the hcapby

Avenger 80 Dec 22, 2022
WordPress models and views for Django.

django-wordpress Models and views for reading a WordPress database. Compatible with WordPress version 3.5+. django-wordpress is a project of ISL and t

Jeremy Carbaugh 332 Dec 24, 2022
The Dolby.io Developer Days Getting Started with Media APIs Workshop repo.

Dolby.io Developer Days Media APIs Getting Started Application About this Workshop and Application This example is designed to get participants workin

Dolby.io Samples 2 Nov 03, 2022
A.I and game for gomoku, working only on windows

Gomoku (A.I of gomoku) The goal of the project is to create an artificial intelligence of gomoku. Goals Beat the opponent. Requirements Python 3.7+ Wo

Luis Rosario 13 Jun 20, 2021
Unirest in Python: Simplified, lightweight HTTP client library.

Unirest for Python Unirest is a set of lightweight HTTP libraries available in multiple languages, built and maintained by Mashape, who also maintain

Kong 432 Dec 21, 2022
Alcarin Tengwar - a Tengwar typeface designed to pair well with the Brill typeface

Alcarin Tengwar Alcarin Tengwar is a Tengwar typeface designed to pair well with

Toshi Omagari 23 Nov 02, 2022
discord bot made in discord.py

udeline discord bot made in discord.py, which's main features include: general use server moderation fun commands other cool commands dependencies dis

1 Feb 08, 2022
Trading bot rienforcement with python

Trading_bot_rienforcement System: Ubuntu 16.04 GPU (GeForce GTX 1080 Ti) Instructions: In order to run the code: Make sure to clone the stable baselin

1 Oct 22, 2021
Telegram bot to check availability of vaccination slots in India.

cowincheckbot Telegram bot to check availability of vaccination slots in India. Setup Install requirements using pip3 install -r requirements.txt Crea

Muhammed Shameem 10 Jun 11, 2022
A discord tool to use bugs and exploits

DiscordTool A discord tool to use bugs and exploits Features: send a buggy messa

6 Aug 19, 2022
A supabase client for python

supabase-client A Supabase client for Python. This mirrors the design of supabase-js Full documentation: https://keosariel.github.io/2021/08/08/supaba

kenneth gabriel 11 Dec 19, 2022
Torrent-Igruha SDK Python

Простой пример использования библиотеки: Устанавливаем библиотеку python -m

LORD_CODE 2 Jun 25, 2022
Cloudshell-sandbox-reporter - Helper modules and classes for writing to Cloudshell sandbox console

Cloudshell Sandbox Reporter This project provides utility classes for formatting

QualiLab 2 Sep 07, 2022
DaProfiler vous permet d'automatiser vos recherches sur des particuliers basés en France uniquement et d'afficher vos résultats sous forme d'arbre.

A but educatif seulement. DaProfiler DaProfiler vous permet de créer un profil sur votre target basé en France uniquement. La particularité de ce prog

Dalunacrobate 73 Dec 21, 2022
This is a repository for the Duke University Cloud Computing course project on Serveless Data Engineering Pipeline. For this project, I recreated the below pipeline.

AWS Data Engineering Pipeline This is a repository for the Duke University Cloud Computing course project on Serverless Data Engineering Pipeline. For

15 Jul 28, 2021
A discord bot consuming Notion API to add, retrieve data to Notion databases.

Notion-DiscordBot A discord bot consuming Notion API to add and retrieve data from Notion databases. Instructions to use the bot: Pre-Requisites: a)In

Servatom 57 Dec 29, 2022
Hostapd-mac-monitor - Setup a hostapd AP to conntrol the connections of specific MACs

A brief explanation This script provides way to setup a monitoring service of sp

2 Feb 03, 2022
Simple integrate of API musixmatch.com with python

Python Musixmatch Simple integrate of API musixmatch.com with python Quick start $ pip install pymusixmatch or $ python setup.py install Authenticatio

Hudson Brendon 79 Dec 20, 2022
Home Assistant for Opendata CWB. Get the weather forecast of the city in Taiwan.

Home assistant support for Opendata CWB. The readme in Traditional Chinese. This integration is based on OpenWeatherMap (@csparpa, pyowm) to develop.

11 Sep 30, 2022