In this short post I will share how to run the latest Oracle 23ai (23.7.0.25.01) ARM container image on a MacBook with Podman.
In this Blog post I will walkthrough the following steps:
- Configure Podman
- Download the Oracle Database 23ai Free image
- Create Podman data volume
- Create Podman secret
- Start Oracle 23ai database using Podman.
- Check Oracle Alert log file.
- Connect to the database using sqlcl.
Environment
For this post I am using Podman version 5.5.1 running on macOS 15.5, 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
% sw_vers -ProductVersion
Confirm current hardware platform with uname -m or arch, for example.
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
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
Pull Image
The Oracle Container Registry provides access to Oracle supported and maintained images for Oracle Enterprise Editions and Oracle Database 23ai Free.
The Oracle Database 23ai Free Container Image contains Oracle Database 23ai Free based on an Oracle Linux 8 base image, with two type of images
The Full image: supports all the database features provided by Oracle Database 23ai Free.
The Lite image: smaller image size with a stripped-down installation of the database (~80% image size reduction).
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.7.0.0-arm64 --tls-verify=false | jq '[.RepoTags]'
% podman pull container-registry.oracle.com/database/free:latest --tls-verify=false
Use podman image list to confirm download.
% podman image list
Oracle Database 23ai 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 23ai using podman volume create
% podman volume create --label version=23ai oradata
Create Database Secret
Now set-up a Podman secret to manage the database password.
% echo -n "podmansecretpasword" | podman secret create ora-secret -
Start Database 23ai
If you have followed all of the above, you should now have an Oracle Database 23ai Free image, data volume and secret.
Start the Oracle Database 23ai Free container with:
% podman run --detach --volume oradata:/opt/oracle/oradata \
--secret ora-secret,type=env,target=ORACLE_PWD \
--publish 1521:1521 \
--name oracle23ai \
container-registry.oracle.com/database/free:latest
Wait a few minutes, and check container status with podman ps, wait for the container to report healthy.
Database Alert log
Use podman logs <container name> to see database container log file, for example.
% podman logs oracle23ai
Database Connection
Now let’s connect to the Database using sqlcl and check the container 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;
Summary
In this blog post I have shared how to:

