Skip to content

An API for performing Python standard library operations on Docker containers (e.g., subprocess, io, os, shutil).

License

Notifications You must be signed in to change notification settings

ChrisTimperley/dockerblade

Folders and files

NameName
Last commit message
Last commit date

Latest commit

bbbbacc · Jun 6, 2024
Mar 31, 2020
Jun 5, 2024
Jun 5, 2024
Jul 27, 2021
May 20, 2024
Jun 6, 2024
Oct 12, 2019
Jun 30, 2020
Jun 5, 2024
Jun 5, 2024
May 20, 2024
Jun 5, 2024

Repository files navigation

dockerblade

Dockerblade makes it easy to interact with Docker containers by providing an API, inspired by Python's standard libraries (e.g., subprocess, os, and io) for executing commands and interacting with filesystems.

Installation

To install the latest release of dockerblade via pipenv or pip:

$ pipenv install dockerblade

Usage

To connect to a Docker daemon on the host machine and attach to a running container:

import dockerblade

daemon = dockerblade.DockerDaemon()
container = daemon.attach('name-of-the-container')

To perform filesystem operations on a container:

filesystem = container.filesystem()

# write text to a file
filesystem.write('/tmp/foo', 'Hello world!')

# remove a file (inspired by os.remove)
filesystem.remove('/tmp/foo')

# see API docs for more operations
...

To execute commands inside the container:

# specify the shell that should be used (e.g., /bin/sh, /bin/bash, /bin/zsh)
shell = container.shell('/bin/bash')

# obtain the value of an environment variable
val = container.environ('LD_LIBRARY_PATH')

# create a Popen
process = shell.popen('sleep 5')
retcode = process.wait()

# execute a command
assert shell.check_output('echo "Hello World"') == 'Hello World'

# see API docs for more operations
...

API Documentation

API documentation is available at: https://www.christimperley.co.uk/dockerblade