Skip to content
閲覧中:
10.databa settei

10.databa settei

Ubuntu 24 (ysmr) に Oracle Database Free を Docker で導入するまとめ

構成:

PC 用途 ysmr Oracle DB サーバ yossym-NucBox-EVO-X2 Java開発・接続

1. Docker インストール(ysmr)

ysmr で実行。

sudo apt update sudo apt install -y docker.io

2. Docker 自動起動

sudo systemctl enable docker sudo systemctl start docker

確認:

systemctl status docker

3. docker グループ追加

sudo無しで docker を使う設定。

sudo usermod -aG docker yossym

重要:

一度ログアウトして再ログイン

4. Docker 動作確認

docker run hello-world

成功すると:

Hello from Docker!

が表示されます。

5. Oracle Container Registry アカウント作成

Oracle公式:

Oracle Container Registry

Oracleアカウントを作成。

6. Oracle DB 利用規約同意

ここ重要です。

以下へアクセス:

Oracle Database Free Container

ログイン後:

Accept License

を押す。

7. Docker login

ysmr で:

docker login container-registry.oracle.com

Oracle アカウントを入力。

8. Oracle Database Free ダウンロード

かなり大きいです。

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

9. 永続化ディレクトリ作成

DBデータ保存用。

mkdir -p ~/oracle-data

10. Oracle Database 起動

docker run -d \ --name oracle-free \ -p 1521:1521 \ -p 5500:5500 \ -e ORACLE_PWD='YourStrongPassword123' \ -e ORACLE_CHARACTERSET=AL32UTF8 \ -v ~/oracle-data:/opt/oracle/oradata \ container-registry.oracle.com/database/free:latest

11. コンテナ確認

docker ps

期待:

oracle-free

が表示。

12. 初回起動ログ確認

初回は数分かかります。

docker logs -f oracle-free

最後に:

DATABASE IS READY TO USE!

が出たら完了。

13. ポート確認

ysmr で:

ss -tln | grep 1521

期待:

*:1521

14. Firewall

UFW利用時。

sudo ufw allow 1521/tcp

15. 接続情報

項目 値 Host 192.168.3.9 Port 1521 Service Name FREEPDB1 User system Password YourStrongPassword123

16. JDBC Driver ダウンロード

Oracle JDBC Driver:

Oracle JDBC Driver Downloads

ojdbc11.jar が Java21 と相性良いです。

例:

mkdir -p ~/.local/lib

へ保存。

17. Java JDBC サンプル

Java
import java.sql.Connection;
import java.sql.DriverManager;
public class Main {
    public static void main(String[] args)
        throws Exception {
        String url =
            "jdbc:oracle:thin:@192.168.3.9:1521/FREEPDB1";
        String user = "system";
        String password =
            "YourStrongPassword123";
        Connection conn =
            DriverManager.getConnection(
                url,
                user,
                password
            );
        System.out.println("connected");
        conn.close();
    }
}

18. コンパイル

Bash
javac -cp ~/.local/lib/ojdbc11.jar Main.java

19. 実行

Bash
java \
-cp .:~/.local/lib/ojdbc11.jar \
Main

成功:

connected

20. Oracle 停止・起動

停止:

docker stop oracle-free

起動:

docker start oracle-free

21. 自動起動

Bash
docker update --restart unless-stopped oracle-free

22. SQL実行確認

Oracleコンテナへ入る。

docker exec -it oracle-free bash

  • SQLPlus

sqlplus system/YourStrongPassword123@FREEPDB1

  • テーブル作成
SQL
CREATE TABLE users (
    id NUMBER PRIMARY KEY,
    name VARCHAR2(100)
);
  • INSERT
SQL
INSERT INTO users VALUES (1, 'yossym');
COMMIT;
  • SELECT

    SQL
    SELECT * FROM users;
    

  • GUIおすすめ

    • DBeaver

    • DBeaver

Bash
sudo snap install dbeaver-ce

Host:

192.168.3.9

Port:

1521

Service:

FREEPDB1

  • Java Gold 的に重要な部分

覚えるべきは:

Text Only
* JDBC URL
* DriverManager
* Connection
* Statement
* PreparedStatement
* ResultSet
* commit
* rollback

です。

Dockerかどうかは Javaコードからはほぼ見えません。