It can create a container based on the local image. If the image does not exist, the image will be pulled down. If the container exists, it will be started directly. Then execute any service you want to execute in the container.
Project description
easier-docker
Repository Introduction
It can create a container based on the local image. If the image does not exist, the image will be pulled down. If the container exists, it will be started directly. Then execute any service you want to execute in the container.
Install
pip install easier-docker
Usage
💡 Please check config parameters in Docker SDK for Python
Use examples in code
Run the example.py
# example.py
import os
from easierdocker import EasierDocker
if __name__ == '__main__':
host_script = os.path.dirname(os.path.abspath(__file__))
container_script = '/path/to/container'
config = {
'image': 'python:3.9',
'name': 'python_test',
'volumes': {
f'{host_script}': {'bind': container_script, 'mode': 'rw'}
},
'detach': True,
'command': ["sh", "-c", f'cd {container_script} &&'
'python docker_example.py'],
}
easier_docker = EasierDocker(config)
easier_docker.start()
"""
>>> Finding python:3.9 docker image in local
>>> Finding python_test docker container in local
>>> ContainerNotFound: python_test
>>> container id: d9233f82e9a17627d51d294091b43295fdcf3e2fae204f2d8e2bb7080b88c0b0 is running
"""
The content of docker_example.py is
# docker_example.py
def main():
import logging
import time
for i in range(1, 101):
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logging.info(f'sleep 30s, times:{i}')
time.sleep(30)
if __name__ == '__main__':
main()
Run directly from configuration file
Currently supports yaml
easier-docker -c config.yaml
The content of config.yaml is
# config.yaml
image: python:3.9
name: python_test
volumes:
/Users/admin/data/code_project/easier-docker/tests:
bind: /path/to/container
mode: rw
detach: true
command:
- sh
- -c
- cd /path/to/container && python docker_example.py
Related Repository
- docker-py — A Python library for the Docker Engine API.
Related Materials
Related Uses Repository
- opsariichthys-bidens — About Building a Basic Information API for Chinese National Universities in the Handheld College Entrance Examination Based on Fastapi.
Maintainers
Contributing
How I wish I could add more content in this repo ! Feel free to dive in! Open an issue or submit PRs. Standard Python follows the Python PEP-8 Code of Conduct.
Contributors
This project exists thanks to all the people who contribute.
License
MIT © weiensong
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.