⚠️ Warning: Legacy Software
This setup is intended only for my classmates or anyone who absolutely must use Oracle 10g for academic or legacy reasons.
Oracle 10g is outdated, unsupported, insecure, and a terrible choice for production, modern development, or internet-facing deployments.
Use this at your own risk — you've been warned.
🐳 Oracle 10g Installation on Linux Using Docker¶
Set up Oracle Database 10g Express Edition inside a Docker container on any Linux system with persistent storage and browser access.
❄️ Step 1: Install Docker¶
Debian / Ubuntu¶
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker
Arch Linux¶
sudo pacman -Syu docker
sudo systemctl enable --now docker
Fedora¶
sudo dnf install -y docker
sudo systemctl enable --now docker
(Optional) Add user to docker group¶
sudo usermod -aG docker \$USER
newgrp docker
🐉 Step 2: Pull Oracle 10g Docker Image¶
docker pull dragonbest520/oracle-xe-10g
💾 Step 3: Create Volume for Persistence¶
docker volume create oracle_xe_10g_vol
🚀 Step 4: Run Oracle 10g Container¶
docker run --name oracle10g \\
-d \\
-p 49160:22 \\
-p 1521:1521 \\
-p 49162:8080 \\
--mount source=oracle_xe_10g_vol,target=/usr/lib/oracle \\
-e ORACLE_ALLOW_REMOTE=true \\
--shm-size=1g \\
--memory=2g \\
--restart=always \\
dragonbest520/oracle-xe-10g
🌐 Step 5: Access Oracle Services¶
| Port | Purpose |
|---|---|
| 1521 | SQL Listener |
| 49160 | SSH (optional) |
| 49162 | APEX Web GUI (HTTP) |
🖥️ Open your browser and go to: http://localhost:49162/apex to access the Oracle APEX Web UI.
🔑 Default Credentials¶
- Username: `system`
- Password: `oracle`
🧼 Step 6: Manage the Container¶
docker logs -f oracle10g # View logs
docker exec -it oracle10g bash # Shell inside container
docker stop oracle10g # Stop DB
docker start oracle10g # Start DB
📁 Data Location¶
All Oracle files are stored inside:
/var/lib/docker/volumes/oracle_xe_10g_vol/_data
Backup this volume if you care about data persistence.
⚠️ Notes¶
- This image uses Oracle 10g, which is deprecated and no longer supported.
- Do not expose these ports to public internet unless you know what you're doing.
- Use this only for testing, local dev, or legacy lab use cases.