Intro
Oracle cung cấp một github repository gồm các cấu hình, images, Dockerfiles cho các sản phẩm của họ, trong đó có Oracle Database.
Chúng ta có thể dụng tài nguyên sẵn có này để dựng Oracle DB trên Docker.
Clone repo
Github repository mà Oracle cung cấp có kích thước khá lớn, để tiết kiệm thời gian bạn chỉ cần clone phần liên quan đến Oracle Database (single instance), ở đây là thư mục OracleDatabase/SingleInstance.
Do đó, ta sẽ sử dụng sparse checkout của Git.
#1. Đảm bảo Git của bạn có version 2.2 hoặc cao hơn
git --version
#2. Clone repo
git clone --no-checkout https://github.com/oracle/docker-images
#3. Truy cập thư mục repo
cd docker-images
#4. Cập nhật cấu hình để enable sparse checkout
git config core.sparseCheckout true
#5. Initialize sparse-checkout
git sparse-checkout init --cone
#6. Checkout thư mục Oracle database
git sparse-checkout set OracleDatabase/SingleInstance
#7. Pull data
git checkout
Build image
#1. Download bản cài đặt oracle database trên website chính chủ
Move bản cài vào thư mục version tương ứng, ở đây là OracleDatabase/SingleInstance/dockerfiles/<oracle-db-version>
#2. Khởi tạo image
Truy cập thư mục OracleDatabase/SingleInstance/dockerfiles, chạy lệnh build image:
./buildContainerImage.sh -v <oracle-db-version> -s
Kiểm tra image đã được build thành công
docker ps
Run container
docker run \
--name oracledb \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_PWD=My1passw \
-v ~/db/oracle:/opt/oracle/oradata \
<oracle-image-name>
Trong đó:
- ORACLE_PWD: password cho các account SYS, SYSTEM, và PDB_ADMIN. Nếu bạn không khai báo biến này, mật khẩu mặc định sẽ được tự động gen và hiển thị trên màn hình khi khởi tạo container.
Bạn có thể update password sau khi container đã khởi tạo xong với câu lệnh
docker exec [container_name] /opt/oracle/setPassword.sh [new_password]
- -v ~/db/oracle:/opt/oracle/oradata: mount thư mục chứa dữ liệu oracle db tới thư mục ~/db/oracle. Lưu ý cần đảm bảo user của bạn có toàn quyền read, write, execute với thư mục ~/db/oracle.
Container khi khởi tạo xong sẽ hiện log tương tự như hình dưới:
Kết nối thử với database
#1. Check file ~/db/oracle/dbconfig/ORCLCDB/tnsnames.ora để xem thông tin kết nối
#2. Kết nối với database với account SYS, SYSTEM, hoặc PDB_ADMIN, password là giá trị của ORACLE_PWD khi bạn khởi tạo container.
Vậy đấy, chúc mn cài đặt thành công!