DevOps

Install Oracle 26ai + APEX 26.1 with Docker

A clean, tested local stack — the 26ai database, ORDS and APEX in containers — on Windows or Linux in about 30 minutes.

Beginner1 min readUpdated: 2026-06-09

Run the full Oracle 26ai stack — database, ORDS, and APEX 26.1 — locally in Docker. This is the foundation every other guide builds on, and the exact same docker-compose.yml moves to a cloud VM unchanged.

Pick your OS — every command block on this page switches with it:

Prerequisites

You need Docker and ~15 GB of free disk. On Windows, Docker Desktop runs on WSL2.

# Check virtualization (run in admin PowerShell)
systeminfo | Select-String "Hyper-V|Virtualization"

# Install WSL2 (reboot if prompted), then install Docker Desktop
wsl --install

Verify Docker works before continuing:

docker run hello-world

WSL2 line-endings gotcha

If you edit .env on Windows with Notepad it may save CRLF line endings that WSL2 dislikes. If you hit strange errors, re-save the file as UTF-8 with LF line endings.

Get access to the Oracle image

Create a free account at container-registry.oracle.com, open Database → free, and accept the license once. Then log Docker in:

docker login container-registry.oracle.com

You should see Login Succeeded.

Bring up the full stack

The fastest path is a Compose stack that wires the database, ORDS and APEX together.

cd $HOME
git clone https://github.com/demasy/oracle-sandbox.git
cd oracle-sandbox
copy .env.example .env
notepad .env    # set ORACLE_PWD to a strong password
docker compose up -d

First run pulls images and installs APEX — it takes several minutes. Press Run to see what a healthy startup looks like:

docker compose logs -f

Verify and first login

Confirm the containers are healthy, then open APEX:

docker ps

Open http://localhost:8080/ords/apex — you should see the APEX login screen. Sign in to the INTERNAL workspace as admin (the initial password is in the project README or the logs; reset it with apxchpwd.sql if needed), then create your own workspace and schema.

Connection cheat-sheet

Host localhost · Port 1521 · Service FREEPDB1 · Admin SYSTEM · APEX http://localhost:8080/ords/apex · EM Express https://localhost:5500/em

Daily lifecycle

docker compose stop      # pause (keeps data)
docker compose start     # resume
docker compose down      # remove containers (volume persists)
docker compose down -v   # full reset (deletes data)

Try a couple of safe commands yourself:

Try: docker ps · docker compose stop · docker compose start
$

Check your understanding

Check your understanding

0% · 0/3

What URL serves APEX after this install?

Which service name is the pluggable database?

You edited .env on Windows and hit odd errors. Likely cause?

That's a complete local Oracle + APEX environment. Next: build your first app by chatting with an AI agent.

Need this delivered?

Request a quote