In this short post I will share how to run the latest Oracle AI Database 26ai (23.26.0.3.0) ARM container image on a MacBook with Podman.
In this Blog post I will walkthrough the following steps:
- Configure Podman
- Download the Oracle AI Database 26ai Free image
- Create Podman data volume
- Create Podman secret
- Start Oracle AI Database 26ai using Podman.
- Check Oracle Alert log file.
- Connect to the database using sqlcl.
Environment
For this post I am using Podman version 6.1.4 running on macOS 26.7.2 which I installed using brew install podman, brew upgrade podman.
Use podman -v to check version of podman, and sw_vers -ProductVersion to confirm macOS version, for example:
% podman -v
% podman -v
podman version 6.1.4
% sw_vers -ProductVersion
% sw_vers -ProductVersion
26.7.2
Confirm current hardware platform with uname -m or arch, for example.
% uname -m
arm64
% arch
arm64
Initialise Machine
To start, initialise a new Podman machine with podman machine init this will automatically pull back a Podman VM image and create a VM on your MacBook.
The podman machine init accepts a number of parameters including –cpus –memory and –disk-size.
% podman machine init --cpus 4 --memory 4096 --disk-size 25
% podman machine init --cpus 4 --memory 4096 --disk-size 25
Looking up Podman Machine image at quay.io/podman/machine-os:6.1 to create VM
Getting image source signatures
Copying blob cd711cd582d3 done |
Copying config 44136fa355 done |
Writing manifest to image destination
cd711cd582d301f11616281f0b0098de7cad26b050b7317b8bd3f3ac667c0d21
Extracting compressed file: podman-machine-default-arm64.raw: done
Machine init complete
To start your machine run:
podman machine start
Start Machine
To start our Podman Linux VM use podman machine start, if no name is specified, it defaults to podman-machine-default
% podman machine start
% podman machine start
Starting machine "podman-machine-default"
This machine is currently configured in rootless mode. If your containers
require root permissions (e.g. ports < 1024), or if you run into compatibility
issues with non-podman clients, you can switch using the following command:
podman machine set --rootful
API forwarding listening on: /var/run/docker.sock
Docker API clients default to this address. You do not need to set DOCKER_HOST.
Machine "podman-machine-default" started successfully
Pull Image
The Oracle Container Registry provides access to Oracle supported and maintained images for Oracle Enterprise Editions and Oracle AI Database 26ai Free, with two type of images
The Full image: supports all the database features provided by Oracle AI Database 26ai Free.
The Lite image: smaller image size with a stripped-down installation of the database (~80% image size reduction).
Skopeo
Skopeo (Greek for “remote viewing”) is a great tool for managing images and can be installed using brew.
% brew install skopeo
Using skopeo we can confirm available images for our platform by filtering on RepoTags check available versions and platforms, for example:
% skopeo inspect docker://container-registry.oracle.com/database/free:23.26.3.0-arm64 --tls-verify=false | jq '[.RepoTags]'
% skopeo inspect docker://container-registry.oracle.com/database/free:23.26.3.0-arm64 --tls-verify=false | jq '[.RepoTags]'
[
[
"23.2.0.0",
"23.26.0.0-amd64",
"23.26.0.0-arm64",
"23.26.0.0-lite-amd64",
"23.26.0.0-lite-arm64",
"23.26.0.0-lite",
"23.26.0.0",
"23.26.1.0-amd64",
"23.26.1.0-arm64",
"23.26.1.0-lite-amd64",
"23.26.1.0-lite-arm64",
"23.26.1.0-lite",
"23.26.1.0",
"23.26.2.0-amd64",
"23.26.2.0-arm64",
"23.26.2.0-lite-amd64",
"23.26.2.0-lite-arm64",
"23.26.2.0-lite",
"23.26.2.0",
"23.26.3.0-amd64",
"23.26.3.0-arm64",
"23.26.3.0-lite-amd64",
"23.26.3.0-lite-arm64",
"23.26.3.0-lite",
"23.26.3.0",
"23.3.0.0",
"23.4.0.0-lite",
"23.4.0.0",
"23.5.0.0-amd64",
"23.5.0.0-arm64",
"23.5.0.0-lite-amd64",
"23.5.0.0-lite-arm64",
"23.5.0.0-lite",
"23.5.0.0",
"23.6.0.0-amd64",
"23.6.0.0-arm64",
"23.6.0.0-lite-amd64",
"23.6.0.0-lite-arm64",
"23.6.0.0-lite",
"23.6.0.0",
"23.7.0.0-amd64",
"23.7.0.0-arm64",
"23.7.0.0-lite-amd64",
"23.7.0.0-lite-arm64",
"23.7.0.0-lite",
"23.7.0.0",
"23.8.0.0-amd64",
"23.8.0.0-arm64",
"23.8.0.0-lite-amd64",
"23.8.0.0-lite-arm64",
"23.8.0.0-lite",
"23.8.0.0",
"23.9.0.0-amd64",
"23.9.0.0-arm64",
"23.9.0.0-lite-amd64",
"23.9.0.0-lite-arm64",
"23.9.0.0-lite",
"23.9.0.0",
"RDBMS_23.26.3.0.0DBRU_LINUX.X64_260704-arm64-lite",
"RDBMS_23.26.3.0.0DBRU_LINUX.X64_260704-arm64",
"RDBMS_23.26.3.0.0DBRU_LINUX.X64_260704-lite",
"RDBMS_23.26.3.0.0DBRU_LINUX.X64_260704",
"latest-lite",
"latest"
]
]
podman pull container-registry.oracle.com/database/free:latest --tls-verify=false
Use podman image list to confirm download.
% podman image list
% podman image list
REPOSITORY TAG IMAGE ID CREATED SIZE
container-registry.oracle.com/database/free latest dbd385a383e2 3 months ago 9.49 GB
Oracle AI Database 26ai Free
Create Data Volume
Before we start our database, let’s first create a persistent volume called oradata with a label called version set to 26ai using podman volume create and check details using podman volume inspect.
% podman volume create --label version=26ai oradata
% podman volume inspect oradata
% podman volume create --label version=26ai oradata
oradata
% podman volume inspect oradata
[
{
"Name": "oradata",
"Driver": "local",
"Mountpoint": "/var/home/core/.local/share/containers/storage/volumes/oradata/_data",
"CreatedAt": "2026-11-04T13:46:11.671444243Z",
"Labels": {
"version": "26ai"
},
"Scope": "local",
"Options": {},
"MountCount": 0,
"NeedsCopyUp": true,
"NeedsChown": true,
"LockNumber": 0
}
]
Create Database Secret
Now set-up a Podman secret to manage the database password.
% echo -n "podmansecretpasword" | podman secret create ora-secret -
% echo -n "podmansecretpasword" | podman secret create ora-secret -
cc6592e4d2b29e2e28bd69cbd
Start Database 23ai
If you have followed all of the above, you should now have an Oracle AI Database 26ai Free image, data volume and secret.
Start the Oracle AI Database 26ai Free container with:
% podman run --detach --volume oradata:/opt/oracle/oradata \
--secret ora-secret,type=env,target=ORACLE_PWD \
--publish 1521:1521 \
--name oracle26ai \
container-registry.oracle.com/database/free:latest
% podman run --detach --volume oradata:/opt/oracle/oradata \
--secret ora-secret,type=env,target=ORACLE_PWD \
--publish 1521:1521 \
--name oracle26ai \
container-registry.oracle.com/database/free:latest
1c2cadad9a4afb93c13e2b815f54183d7ba65ab85e344baadd96b29e0d69b4b6
Wait a few minutes, and check container status with podman ps, wait for the container to report healthy.
% podman ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1c2cadad9a4a container-registry.oracle.com/database/free:latest /bin/bash -c $SCR... About a minute ago Up About a minute (healthy) 0.0.0.0:1521->1521/tcp oracle26ai
Database Alert log
Use podman logs <container name> to see database container log file, for example.
% podman logs oracle26ai
% podman logs oracle26ai
Starting Oracle Net Listener.
Oracle Net Listener started.
Starting Oracle AI Database instance FREE.
Oracle AI Database instance FREE started.
The Oracle base remains unchanged with value /opt/oracle
SQL*Plus: Release 23.26.3.0.0 - Production on Wed Nov 4 13:50:31 2026
Version 23.26.3.0.0
Copyrigt (c) 1982, 2026, Oracle. All rights reserved.
Connected to:
Oracle AI Database 26ai Free Release 23.26.3.0.0 - Develop, Learn, and Run for Free
Version 23.26.3.0.0
SQL>
User altered.
SQL>
User altered.
SQL>
Session altered.
SQL>
User altered.
SQL> Disconnected from Oracle AI Database 26ai Free Release 23.26.3.0.0 - Develop, Learn, and Run for Free
Version 23.26.3.0.0
#########################
DATABASE IS READY TO USE!
#########################
Database Connection
Now let’s connect to the Database using sqlcl and check the host name, database version and pluggable database names.
% sql sys/podmansecretpasword@//localhost:1521/FREE as sysdba
SQL> select INSTANCE_NAME, HOST_NAME, VERSION_FULL, EDITION from v$instance;
% sql sys/podmansecretpasword@//localhost:1521/FREE as sysdba
SQLcl: Release 25.4 Production on Wed Nov 04 13:55:37 2026
Copyright (c) 1982, 2026, Oracle. All rights reserved.
Connected to:
Oracle AI Database 26ai Free Release 23.26.3.0.0 - Develop, Learn, and Run for Free
Version 23.26.3.0.0
SQL> select INSTANCE_NAME, HOST_NAME, VERSION_FULL, EDITION from v$instance;
INSTANCE_NAME HOST_NAME VERSION_FULL EDITION
________________ _______________ _______________ __________
FREE 1c2cadad9a4a 23.26.3.0.0 FREE
Elapsed: 00:00:00.052
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
_________ ___________ _____________ _____________
2 PDB$SEED READ ONLY NO
3 FREEPDB1 READ WRITE NO
SQL>
Summary
In this blog post I have shared how to:
- Configure Podman
- Download Oracle AI Database 26ai Free image
- Create Podman data volume
- Create Podman secret
- Start Oracle AI Database 26ai using Podman.
- Check Oracle Alert log file.
- Connect to the database using sqlcl.
Podman Desktop
You can also use the Podman Desktop to manage your Oracle AI Database 26ai container but that’s for another post.

