0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSLのDockerでOracle 23ai Freeを動かす

Posted at

1. はじめに

Windows 11のWSL2のUbuntu上のDockerで、Oracle 23 ai Freeコンテナを動かせるようにします。
インストール後にコマンドhistoryを元に記述しているので抜けがあるかもしれません。

2. Oracle 23 ai Dockerイメージダウンロード

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

Dockerイメージの確認。

docker images

3. Oracleコンテナ起動

コンテナの1521ポートを、デフォルトのdocker0ブリッジ(172.17.0.0)にポートフォワードする。同一ブリッジの他のコンテナ、DockerホストのUbuntu、WSLのホストのWindows 11から接続できるようになる。
ポートフォワード設定はdocker runでしかできず、イメージからコンテナを作成後にポートフォワード設定する場合には、コンテナをdocker commitしてイメージとして保存し、docker runし直す必要がある。
ブリッジのIPアドレスがWSLが自動的に振るIPアドレスとぶつかる場合があるので要注意らしい。
Oracle 23 ai DockerイメージがRHEL 8.9ベースで、Oracleのリポジトリに繋がらず、firewalldが入っていないので、同一ブリッジから繋ぎ放題。
--nameは任意の名称。

docker run -d --name oracle-db -e ORACLE_PWD=<systemユーザーに設定するパスワード> -p 1521:1521 container-registry.oracle.com/database/free

コンテナの確認。-aで止まっているコンテナも表示される。

docker ps -a

接続してIPアドレス確認。

docker exec -it oracle-db bash
ifconfig

自分の場合は 172.17.0.2 でした。

DB接続確認。

sqlplus system/<設定したパスワード>

または、

sqlplus system/<設定したパスワード>@localhost:1521/FREEPDB1
SELECT SYSDATE FROM DUAL;
EXIT

4. 動作確認用にAlmaLinuxイメージダウンロード、起動

実施時点では最新は9.4でした。

docker image pull almalinux

--nameは任意。

docker run -it --name myalmalinux almalinux:latest /bin/bash

5. Oracle Instant Client 21ダウンロード

Windows 11でダウンロードしました。
ダウンロードページの最新の Oracle Instant Client 21を使いましたが、後述の 公式情報の ld.so.conf の設定のコマンド例だと instantclient_23_3 となっているので、どこかに23がある? 見つからなかった。

Oracle Instant Client - Oracle Databaseに接続するための無償のツールとライブラリ | Oracle 日本
https://www.oracle.com/jp/database/technologies/instant-client.html

Oracle Instant Client Downloads | Oracle 日本
https://www.oracle.com/jp/database/technologies/instant-client/downloads.html

5.1. Linux 64bit

Linux x86-64用Instant Client(64ビット) | Oracle 日本
https://www.oracle.com/jp/database/technologies/instant-client/linux-x86-64-downloads.html

インストール時点の最新が21.11.0.0.0。
自分が必要なものをダウンロードする。

Basicパッケージ(ZIP)
instantclient-basic-linux.x64-21.11.0.0.0dbru.zip

SQL*Plusパッケージ(ZIP)
instantclient-sqlplus-linux.x64-21.11.0.0.0dbru.zip

ツール・パッケージ(ZIP)
instantclient-tools-linux.x64-21.11.0.0.0dbru.zip

SDKパッケージ(ZIP)
instantclient-sdk-linux.x64-21.11.0.0.0dbru.zip

JDBC Supplementパッケージ(ZIP)
instantclient-jdbc-linux.x64-21.11.0.0.0dbru.zip

ODBCパッケージ(ZIP)
instantclient-odbc-linux.x64-21.11.0.0.0dbru.zip

プリコンパイラ・パッケージ(ProCとProCOBOL用の追加ファイル) は必要に応じて。

ダウンロードしたファイルをLinuxコンテナへコピーする。
WSLのUbuntu(等)で、

cd /mnt/C/Users/<Windowsユーザー名>/Downloads/
docker cp instantclient-basic-linux.x64-21.11.0.0.0dbru.zip myalmalinux:/tmp/
docker cp instantclient-sqlplus-linux.x64-21.11.0.0.0dbru.zip myalmalinux:/tmp/
docker cp instantclient-odbc-linux.x64-21.11.0.0.0dbru.zip myalmalinux:/tmp/
docker cp instantclient-tools-linux.x64-21.11.0.0.0dbru.zip myalmalinux:/tmp/
docker cp instantclient-sdk-linux.x64-21.11.0.0.0dbru.zip myalmalinux:/tmp/

5.2. Windows 64bit

Microsoft Windows(x64)64ビット用Oracle Instant Client | Oracle 日本
https://www.oracle.com/jp/database/technologies/instant-client/winx64-64-downloads.html

インストール時点の最新が21.9.0.0.0。
自分が必要なものをダウンロードする。

Basicパッケージ
instantclient-basic-windows.x64-21.9.0.0.0dbru.zip

SQL*Plus パッケージ
instantclient-sqlplus-windows.x64-21.9.0.0.0dbru.zip

ツール・パッケージ
instantclient-tools-windows.x64-21.9.0.0.0dbru.zip

SDK パッケージ
instantclient-sdk-windows.x64-21.9.0.0.0dbru.zip

JDBC Supplement パッケージ
instantclient-jdbc-windows.x64-21.9.0.0.0dbru.zip

ODBC パッケージ
instantclient-odbc-windows.x64-21.9.0.0.0dbru.zip

プリコンパイラ・パッケージ(ProCとProCOBOL用の追加ファイル) は必要に応じて。

6. Oracle Instant Client 21インストール

6.1. Linux(AlmaLinux 9.4)

rootで作業する。

・oracleユーザー作成(なくてもいい)

dnf install passwd zip
useradd oracle
passwd oracle

・ダウンロードしたzipを /home/oracle に全て展開する。(/home/oracle/instantclient_21_11/ ができて全てその中に入る)

su - oracle
unzip /tmp/instantclient-basic-linux.x64-21.11.0.0.0dbru.zip
unzip /tmp/instantclient-sqlplus-linux.x64-21.11.0.0.0dbru.zip
unzip /tmp/instantclient-odbc-linux.x64-21.11.0.0.0dbru.zip
unzip /tmp/instantclient-tools-linux.x64-21.11.0.0.0dbru.zip
unzip /tmp/instantclient-sdk-linux.x64-21.11.0.0.0dbru.zip
export ORACLE_HOME=/home/oracle/instantclient_21_11
export PATH=$PATH:$ORACLE_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME

これだけだと.so不足でsqlplusが動かない。
不足ライブラリはlddコマンドで確認できる。

dnf install libaio

libclntshcore.so 等が存在するのにどうしてもnot foundになる。
公式情報の通りに ld.so.conf でsoファイルが見ることができるようにする。

OCI用のInstant Clientライブラリ
https://docs.oracle.com/cd/F82042_01/lacli/instant-client-shared-libraries.html

echo /opt/oracle/instantclient_21_11 > /etc/ld.so.conf.d/oracle-instantclient.conf
ldconfig
sqlplus system/<設定したパスワード>@<oracle-dbコンテナのIPアドレス>:1521@FREEPDB1
SELECT SYSDATE FROM DUAL;
EXIT

ついで。

dnf install unixODBC

6.2. Windows 11

ダウンロードしたzipを展開して任意のパスに置く。例:C:\instantclient_21_9\

コマンドプロンプトかPowerShellでそのディレクトリに移動し、

sqlplus system/<設定したパスワード>@<oracle-dbコンテナのIPアドレス>:1521@FREEPDB1
SELECT SYSDATE FROM DUAL;
EXIT
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?