Play with Docker and Python
Forget complex Python setup. Learn how to quickly run your Python scripts using Docker containers, from "Hello World" to a Hangman game, and simplify your development.
This article is over a year old but was reviewed on July 30, 2026 — the content is still accurate.

This article runs Python scripts with zero local install using the official python Docker image (docker run ... python python Hello.py), going from a "Hello World" script to running a console Hangman game — showing how quickly you can start experimenting with a new language thanks to Docker.
Do you remember when you wanted to learn a new programming language such as Python? What did you need before you could even program your first Hello World? You had to install the language on your computer; maybe you also had to install a lot of libraries/dependencies; you had to spend time configuring your machine before you could even start writing your first script.
That's all over with the advent of Docker and the concept of containers.
This time, we'll play with Python for this article. I am discovering Python at the same time as writing this article: at this precise moment, I have never written .py scripts.
Welcome to the world
Please start a Linux shell and run mkdir -p /tmp/python && cd $_ to create a folder called python in your Linux temporary folder and enter it.
Please create a new file called Hello.py with this content:
print("Hello World!")
This program prints the text 'Hello World!' to the screen. It's the simplest possible Python program, often used as a first test to verify that Python is working correctly.
So, now, how to run that script? Because I'm familiar with Docker, I know that:
- I need a Python Docker image (https://hub.docker.com/_/python),
- I will need to use a
docker runcommand line instruction, - I will need to share my script using a volume and
- I need to know how to run the script.
And voilà, my first Python script has been written. Remember the old days, before Docker, how many hours and how much reading you needed to be able to run your first script? Here, it did not take me five minutes to get up and running.
Once past "Hello World", two articles take this further: Docker - Python devcontainer for a real VSCode environment, and Python - Code Quality tools to keep your scripts clean from day one.
Docker CLI reminder
As a reminder, the used Docker run commands are (almost always the same):
-itto start Docker interactively, this will allow the script running in the container to ask you for some prompts for example,--rmto ask Docker to kill and remove the container as soon as the script has been executed (otherwise you will have a lot of exited but not removed Docker containers; you can check this by not using the--rmflag then runningdocker container liston the console),-v ${PWD}:/appto share your current folder with a folder called/appin the Docker container,-w /appto tell Docker that the current directory, in the container, will be the/appfolder- then
pythonwhich is the name of the Docker image to use (you can also specify a version likepython:3.9.18if needed; see https://hub.docker.com/_/python/tags) and, finally, python Hello.pyi.e. the command line to start within the container.
Playing the hangman
As said above, in November 2023, I haven't started to learn Python so let's try to find some sample scripts. On https://hackr.io/blog/python-projects, we can find a Hangman script.
Please create the Hangman.py file on your disk with this content:
import osimport randomimport time
def play_again(): question = "Do You want to play again? y = yes, n = no \n" play_game = input(question) while play_game.lower() not in ["y", "n"]: play_game = input(question)
if play_game.lower() == "y": return True else: return False
def hangman(word): display = "_" * len(word) count = 0 limit = 5 letters = list(word) guessed = [] while count < limit: guess = input(f"Hangman Word: {display} Enter your guess: \n").strip() while len(guess) == 0 or len(guess) > 1: print("Invalid input. Enter a single letter\n") guess = input(f"Hangman Word: {display} Enter your guess: \n").strip()
if guess in guessed: print("Oops! You already tried that guess, try again!\n") continue
if guess in letters: letters.remove(guess) index = word.find(guess) display = display[:index] + guess + display[index + 1 :]
else: guessed.append(guess) count += 1 if count == 1: time.sleep(1) print( " _____ \n" " | \n" " | \n" " | \n" " | \n" " | \n" " | \n" "__|__\n" ) print(f"Wrong guess: {limit - count} guesses remaining\n")
elif count == 2: time.sleep(1) print( " _____ \n" " | | \n" " | | \n" " | \n" " | \n" " | \n" " | \n" "__|__\n" ) print(f"Wrong guess: {limit - count} guesses remaining\n")
elif count == 3: time.sleep(1) print( " _____ \n" " | | \n" " | | \n" " | | \n" " | \n" " | \n" " | \n" "__|__\n" ) print(f"Wrong guess: {limit - count} guesses remaining\n")
elif count == 4: time.sleep(1) print( " _____ \n" " | | \n" " | | \n" " | | \n" " | O \n" " | \n" " | \n" "__|__\n" ) print(f"Wrong guess: {limit - count} guesses remaining\n")
elif count == 5: time.sleep(1) print( " _____ \n" " | | \n" " | | \n" " | | \n" " | O \n" " | /|\\ \n" " | / \\ \n" "__|__\n" ) print("Wrong guess. You've been hanged!!!\n") print(f"The word was: {word}")
if display == word: print(f"Congrats! You have guessed the word '{word}' correctly!") break
def play_hangman(): print("\nWelcome to Hangman\n") name = input("Enter your name: ") print(f"Hello {name}! Best of Luck!") time.sleep(1) print("The game is about to start!\nLet's play Hangman!") time.sleep(1) os.system("cls" if os.name == "nt" else "clear")
words_to_guess = [ "january", "border", "image", "film", "promise", "kids", "lungs", "doll", "rhyme", "damage", "plants", "hello", "world", ] play = True while play: word = random.choice(words_to_guess) hangman(word) play = play_again()
print("Thanks For Playing! We expect you back again!") exit()
if __name__ == "__main__": play_hangman()This is a complete Hangman game implementation. A player guesses letters to figure out a hidden word, getting 5 wrong guesses before losing. The game loops until the player chooses to quit, and it includes visual feedback showing the hangman drawing getting progressively worse with each wrong guess.
Then, run it using docker run -it --rm -v ${PWD}:/app -w /app python python Hangman.py and Good luck:
Hangman Word: ______ Enter your guess:
A
_____
|
|
|
|
|
|
__|__
Wrong guess: 4 guesses remaining
Hangman Word: ______ Enter your guess:
E
_____
| |
| |
|
|
|
|
__|__
Wrong guess: 3 guesses remaining
Hangman Word: ______ Enter your guess:
I
_____
| |
| |
| |
|
|
|
__|__
Wrong guess: 2 guesses remaining
Hangman Word: ______ Enter your guess:
C
_____
| |
| |
| |
| O
|
|
__|__
Wrong guess: 1 guesses remaining
Hangman Word: ______ Enter your guess:
O
_____
| |
| |
| |
| O
| /|\
| / \
__|__
Wrong guess. You've been hanged!!!
The word was: border
Do you want to play again? y = yes, n = no
Darn, I lost.
It is up to you to find out... You will find a script that will test the strength of a password; it is up to you to create the check_password.py script and run it on your machine.
If you're new to Docker itself, start with Docker - Explain me like I'm five. And since the whole point is that this approach works for any language, I've done the same experiment with Pascal, Assembly, and Java.





