Chapter 14: Installing Docker and MariaDB
In this chapter, we’ll install Docker on an Oracle Linux 7 (ARM) server and launch a MariaDB container.container. This MariaDB instance will serve as the centralized database for all compatible applications, simplifying management.
Install Docker on Oracle Linux 7 (ARM)
Run the following commands:
- Update System Packages
sudo yum update -y
- Install Yum Config-manager
yum install -y yum-utils
- Add Docker repository to Oracle Linux and Update Repo
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum update
- Command to install Docker-Ce on Oracle Linux
sudo yum install docker-ce docker-ce-cli containerd.io
sudo yum-config-manager --enable ol7_developer
- change docker.sock permission, docker.sock lets the Docker client talk to the Docker daemon to manage containers, images, and other features.
ls -l /var/run/docker.sock
sudo chown root:docker /var/run/docker.sock
- Enable and start docker service
sudo systemctl stop docker
sudo systemctl enable docker
sudo systemctl start docker
- add the user and group that will run the Docker services.
# Create a new user
sudo adduser dockeruser
# (Optional, usually already exists)
sudo groupadd docker
# Add user to Docker group
sudo usermod -aG docker dockeruser
# Confirm group membership
groups dockeruser
- give the sudo permissions to dockeruser
visudo
dockeruser ALL=(ALL) NOPASSWD:ALL
Installing MariaDB
Step 1: Create a Docker Network
docker network create dockerlab-network
Step 2: Create a Persistent Volume for MariaDB Data
docker volume create dockerlab-mariadb-data
Step 3: Run the MariaDB Container
docker run -d \
--name dockerlab-mariadb \
--network dockerlab-network \
-e MARIADB_ROOT_PASSWORD=mysecretpassword \
-e MARIADB_DATABASE=bookstackapp \
-e MARIADB_USER=myuser \
-e MYSQL_PASSWORD=mypassword \
-v mariadb-data:/var/lib/mysql \
arm64v8/mariadb:latest
docker exec -it dockerlab-mariadb bash
Step 4: Connect Applications to MariaDB
Any container on the same dockerlab-network
network can now connect using:
- Host:
mariadb
(the container name) - User/Password: as set above
- Database:
myappdb
Example using another container (e.g., bookstackapp):
Your app can now reach MariaDB at mariadb:3306
.
Step 5: (Optional) Check Container Logs
To make sure everything is running properly:
docker logs mariadb
Step 6: Example for docker-compose.yml
version: '3.8'
services:
mariadb:
image: mariadb:latest
container_name: mariadb
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: mysecretpassword
MYSQL_DATABASE: myappdb
MYSQL_USER: myuser
MYSQL_PASSWORD: mypassword
volumes:
- mariadb-data:/var/lib/mysql
networks:
- shared-net
myapp:
image: myapp-image
container_name: myapp
restart: unless-stopped
depends_on:
- mariadb
networks:
- shared-net
# environment:
# - DB_HOST=mariadb
# - DB_USER=myuser
# - DB_PASSWORD=mypassword
# - DB_NAME=myappdb
volumes:
mariadb-data:
networks:
shared-net:
driver: bridge
Run the services:
docker-compose up -d
To check the status or logs:
docker-compose ps
docker-compose logs mariadb