Introduction:
If you have ever tried installing an Oracle Database directly onto your machine, you know the pain. Massive installer files, endless environment variable tweaks, background services slowing down your RAM, and that nagging fear of what happens when you eventually want to uninstall it.
It’s enough to make you stick to lighter databases.
But there’s a much better way to manage local development: Docker.
Instead of altering your main operating system, Docker lets you run Oracle inside an isolated, lightweight container. It takes minutes to set up, uses fewer resources, and when you're done with it, you can wipe it clean without leaving a trace.
For local development, the community favorite path is using Gerald Venzl's oracle-free images. These Docker Hub images are highly optimized, fast-starting, and significantly easier to use than standard enterprise software registries.
Here is the absolute beginner’s guide to spinning up an Oracle Database Free container on your machine today.
Phase 1: The Bare Essentials
Before running any commands, you only need two tools:
Docker Desktop: Download and install it for Windows, Mac, or Linux. Make sure the app is running in the background.
A Terminal: Command Prompt/PowerShell for Windows, or Terminal for Mac/Linux.
Phase 2: The Step-by-Step Setup
We are going to use the gvenzl/oracle-free image. It is entirely free for development, supports both Intel/AMD and Apple Silicon (M1/M2/M3) chips, and boots up significantly faster than legacy database versions.
Phase 3: The 3 Commands You'll Use Daily
Now verify its running
The best part about Docker is that you never have to run that massive setup command again. Moving forward, you only need three commands to manage your database:
To pause the database (and free up your laptop's memory):
Bashdocker stop my-oracle-dbTo resume exactly where you left off:
Bashdocker start my-oracle-dbTo completely delete the container and start over:
Bashdocker rm -f my-oracle-db
⚠️ A Beginner's Warning on Data: By default, containers are temporary storage units. If you completely delete the container using
docker rm, any database tables or data rows you created will disappear with it.
For local testing, a clean slate is often a feature, not a bug. But if you're building a real app, you'll want your data to stick around even if the container gets destroyed.
In the next series, we shall see how to connect to this Database container using SQLDeveloper for VSCode.
