A Python library for the Docker Engine API
Перейти к файлу
Mariano Scazzariello a18f91bf08
Fix long line
Signed-off-by: Mariano Scazzariello <marianoscazzariello@gmail.com>
2023-05-07 11:49:59 +02:00
.github ci: add support for Python 3.11 (#3064) 2022-11-15 08:10:56 -05:00
docker Fix pytests 2023-05-07 11:47:07 +02:00
docs Merge remote-tracking branch 'upstream/main' into patch-1 2022-08-12 09:43:20 -04:00
scripts use python3.6+ constructs 2021-07-05 18:30:07 -04:00
tests Fix long line 2023-05-07 11:49:59 +02:00
.coveragerc Add coverage 2014-07-11 16:13:00 +02:00
.dockerignore Makes docs builds faster and ensures proper ownership 2017-04-15 15:46:52 +02:00
.editorconfig ci: add workflow for releases (#3018) 2022-07-30 12:14:27 -04:00
.gitignore ci: add workflow for releases (#3018) 2022-07-30 12:14:27 -04:00
.readthedocs.yml docs: install package in ReadTheDocs build (#3032) 2022-08-18 17:03:32 -04:00
CONTRIBUTING.md Rename non-URL occurrences of docker-py to "Docker SDK for Python" 2016-12-12 13:28:49 -08:00
Dockerfile ci: use latest stable syntax for Dockerfiles (#3035) 2022-08-19 15:09:12 -04:00
Dockerfile-docs ci: use latest stable syntax for Dockerfiles (#3035) 2022-08-19 15:09:12 -04:00
Jenkinsfile deps: test on Python 3.10 by default (#3010) 2022-07-27 14:44:36 -04:00
LICENSE Fix licenses 2016-09-05 17:48:09 +02:00
MAINTAINERS Update maintainers 2021-04-06 16:01:16 +02:00
MANIFEST.in Make dockerpycreds part of the SDK under docker.credentials 2019-04-30 23:37:55 -07:00
Makefile ci: run SSH integration tests (#3012) 2022-07-27 16:25:27 -04:00
README.md deps: upgrade & remove unnecessary dependencies (#3014) 2022-07-28 08:32:00 -04:00
docs-requirements.txt docs: fix markdown rendering (#3020) 2022-07-28 16:38:57 -04:00
pyproject.toml ci: add workflow for releases (#3018) 2022-07-30 12:14:27 -04:00
pytest.ini pytest: update to v4.2.1 - use xunit2 for compatibility with Jenkins 2019-08-11 02:13:30 +02:00
requirements.txt deps: upgrade websocket-client to latest (#3022) 2022-07-29 11:09:47 -04:00
setup.cfg Universal wheels are for code expected to work on both Python 2 and 3 2021-10-11 23:06:12 +03:00
setup.py ci: add support for Python 3.11 (#3064) 2022-11-15 08:10:56 -05:00
test-requirements.txt build(deps): Bump setuptools from 63.2.0 to 65.5.1 (#3082) 2023-01-10 17:25:12 -05:00
tox.ini ci: add support for Python 3.11 (#3064) 2022-11-15 08:10:56 -05:00

README.md

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

Older versions (< 6.0) required installing docker[tls] for SSL/TLS support. This is no longer necessary and is a no-op, but is supported for backwards compatibility.

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.