If you are a Python developer, probably you had to deal with versioning issues between your personal or professional projects in the past, or a port already in use, or maybe you have a lot of libraries, SDKs, and dependencies everywhere in your disk.
Docker is a tool that lets you organize all these issues, and also it helps you to keep your services well organized and conflict-free.
How to start with Docker
Docker website is the starting point, the installation is pretty simple and straightforward https://www.docker.com/get-started
After the installation, if you like to run commands through the terminal, make sure you have docker and docker-compose commands available, these are the two commands that you will be using for all the operations like building docker images, deploy containers, list available containers, restart them, or use docker-compose to build a bundle of services connected between each other, between other operations available.
Otherwise, if you prefer to avoid the terminal, here I provide a list of some useful UI tools that will let you setup containers easily with no command lines involved at all, and some other services/applications related to the docker universe.
Docker Hub
This is a repository for docker images, you can find a lot of public images to deploy the services you need easily, https://hub.docker.com.
You can obtain images as Jenkins, Nginx, MongoDB, Postgres DB, Python, Wordpress, Ghost, and much much more.
Also you can create and upload your own images, either public or in your private repository.
Kitematic
If you go to the docker tray icon, Kitematic appears in the list, you just need to click on the link and install it, more info in https://kitematic.com.
Kitematic is an application developed with Electron, with a simple UI, that connects with your Dockerhub account and lets you download images and install them with a single click.
For your containers you are able to configure network, volumes and more in a very easy way.
Portainer
Similar to Kitematic, but instead of having the app in your computer, this is a web application you deploy in a container, then you are able to download docker images, deploy new containers, start/stop them, and more, https://portainer.io.
Portainer also can handle docker compose files easily.
It's is a great tool to manage docker across a local network or in your remote server.
Rancher
Alternative to Portainer, main difference is the support to scale containers through Kubernetes, and some other useful tools more oriented to a production environment.
https://rancher.com