Oracle pl

Baza danych Oracle jako kontener Docker

W artykule tym przyjrzymy się, jak szybko skonfigurować bazę danych Oracle 21c do celów programistycznych za pomocą Dockera.

Czym są kontenery Docker? Jest to format pakowania, gromadzący kod i zależności aplikacji w postaci umożliwiającej szybkie i niezawodne działanie we wszystkich środowiskach obliczeniowych. Wykorzystując konteneryzację możemy w krótkim czasie uruchomić platformę z działającą aplikacją. Technologia ta nie jest tym samym co wirtualizacja, tak więc nie emuluje całej warstwy sprzętowej – dzięki niemu otrzymujemy pełnoprawny system operacyjny, ale przy użyciu mniejszych zasobów sprzętowych.

Poniżej omówiona zostanie instalacja i uruchomienie środowiska konteneryzacji w systemie Linux Mint, oraz Windows.

Instalacja
Aby zainstalować Docker w środowisku Linux opartym o dystrybucję Ubuntu/Debian, wykonaj poniższe polecenia:

sudo apt update
sudo apt install docker.io

Natomiast aby dokonać tego samego w systemie Windows, pobierz i uruchom instalator korzystając z poniższego adresu: https://docs.docker.com/desktop/install/windows-install

Po zainstalowaniu i ponownym uruchomieniu komputera/serwera, otrzymujemy gotowe środowisko konteneryzacji. W chwili pisania tego artykułu (wrzesień 2023), oficjalną, stabilną wersją było wydanie 24.

Linux

Obraz Dockera
Korzystając z polecenia docker pull, mamy możliwość pobrania najnowszej wersji bezpłatnej bazy Oracle Database Express Edition, z oficjalnego rejestru kontenerów firmy Oracle.

docker pull container-registry.oracle.com/database/express:latest

Oracle w wersji Express Edition to darmowe wydanie bazy, które z uwagi na spore ograniczenia (12 GB danych i 2 GB pamięci instancji) nadaje się jedynie do zastosowań deweloperskich. Jest jednak niezłym punktem wyjścia przy tworzeniu lekkiej platformy rozwoju oprogramowania.

Powróćmy jednak do dalszej konfiguracji. Na podstawie pobranego obrazu, możemy teraz przejść do utworzenia kontenera. Skorzystajmy w tym celu z polecenia:

docker container create -it --name oracle_db_dev -p 1521:1521 -e ORACLE_PWD=D7bf3KSp46BM container-registry.oracle.com/database/express:latest  

gdzie:

--name - to nazwa kontenera 
-p 1521:1521    - oznacza port (standardowo 1521)
-e ORACLE_PWD=D7bf3KSp46BM  -  hasło użytkownika "SYSTEM"
container-registry.oracle.com/database/express:latest - odnośnik do obrazu

Możemy uruchomić stworzony właśnie kontener, co spowoduje automatyczny start bazy danych w jego wnętrzu.

Połączmy się z bazą przy użyciu poniższych poświadczeń, korzystając np. z programu Oracle SQL Developer,

host: localhost
port: 1521
username: system
password: D7bf3KSp46BM
sid: xe

i wyślijmy dowolne zapytania do serwera:

Jak widać serwer zwrócił odpowiedź, wynika z tego, że całość konfiguracji została przeprowadzona poprawnie.

Używając poniższego polecenia możesz wyświetlić listę uruchomionych kontenerów:

docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
11182e6074b5 container-registry.oracle.com/database/express:latest "/bin/bash -c $ORACL…" 8 minutes ago Up 7 minutes (healthy) 0.0.0.0:1521->1521/tcp oracle_db_dev

Natomiast w poniższy sposób, podając jako parametr ID kontenera, możesz nawiązać sesję interaktywną z serwerem:

docker container exec -it 11182e6074b5 bash

To ciekawe podejście, kiedy używamy przełączników takich jak ps czy ls., które mają odzwierciedlenie w poleceniach systemu Linux. Ich przeznaczenie jest dzięki temu dość intuicyjne.

W artykule tym omówiliśmy proces uruchamiania baz danych Oracle w kontenerach Docker i eksplorowaliśmy korzyści, jakie niesie to rozwiązanie.

Konteneryzacja baz danych jest stosunkowo nowym trendem, który wciąż zyskuje na popularności, a wiedza na ten temat może stanowić klucz do sukcesu w branży informatycznej. Warto więc eksperymentować, uczyć się i dostosowywać rozwiązania do własnych potrzeb, aby maksymalnie wykorzystać potencjał, jaki niosą ze sobą Docker i bazy danych Oracle.