ICYMI (in case you missed it), a team from Oracle has been hard at work these few months churning out a bunch of Vagrant configuration files and scripts that help you provision some really cool virtual machines (VM), powered by Oracle Enterprise Linux. At the time of writing, here are some of the cool VMs you can build:
- Vanilla Oracle Linux
- Oracle Database
- LAMP stack
- Docker Container Registry
- Docker Host
Make sure you “star” or “watch” their repository for the latest updates.
I was recently tasked to develop a deployment guide using Docker for creating Oracle Application Express (APEX) on the Oracle Cloud Infrastructure. To setup my working environment, I decided to deploy an Oracle Database instance using the Docker images that Oracle has also open sourced previously. However, during that process, I encountered the dreaded:
checkSpace.sh: ERROR - There is not enough space available in the docker container.
My first thought was to set a larger container base size, but the VM was configured to use Btrfs as the storage driver, so that clearly wasn’t the issue. A quick check on the filesystem quickly revealed what the root problem was: free disk space!
$ df -h
The base OEL vagrant box downloaded came with two attached virtual disk. The second, was about 16 GB and was available to the system as
/dev/sdb. This device is then used for the storage device for Docker containers.
scripts/install.sh, line 21:
docker-storage-config -s btrfs -d /dev/sdb
To solve this issue, I needed to increase the amount of storage available to Docker. Fortunately for Btrfs, this is pretty easy to do.
- Shutdown the VM (using the Vagrant command to halt the system) so that I could add another 16 GB virtual disk.
- Power on the VM.
- Check that the device can be “seen” by the operating system (OS):
- Add the new device to the Btrfs volume:
$ sudo btrfs device add /dev/sdc /var/lib/docker
- Attempt to spread the data evenly (balance) across all devices:
$ sudo btrfs filesystem balance /var/lib/docker
Finally, check all went well and that we now have sufficient space to build our very own Oracle Database container.
$ df -h