概要
Windows 10 Home EditionのPCでOracleを動かしたいという話
何も考えずにインストールできればよかったのだが、
Homeはどうもサポートしていないのでどうしたものかという話
Windows 10 x64 - Pro、EnterpriseおよびEducationエディション
環境
モノ | バージョン |
---|---|
OS | Windows10 Home(64bit) |
Oracle Express Edition | 21.3.0 |
Docker Desktopを使いたかったがあきらめた
「あれ、もしかして簡単そう」という唯一の理由で以下サイトに従ってトライした
手順の以下部分の表示で、オプションが表示されなかった。
2. 確認画面が出たら、 Enable WSL 2 Features (WSL 2 機能を有効にする)のオプションが、設定ページで選択されているかどうかを確認します。
インストールには成功するものの、その後は何も起動されない状態が続いた。
オプションが表示されないことが原因かどうかもわからず、
幾度となくインストールとアンインストールを繰り返したが、結果もかわらず。
同じような事象を探してみても見つからないのでここで挫折した。
Dockerそのものがなんなのか理解できていないが、
ここで上手くいかなかったことが逆に「Dockerでやるぞ」というモチベーションにつながる
WSL2でUbuntuでDockerでOracle
Windows上でLinux(Ubuntu)を動かしてそこでDockerを入れて
Oracleのコンテナを動かすというそんな感じの理解をした
ハローワールド用のコンテナとOracleのコンテナのイメージ
DOCKERはいわば丼(どんぶり)。天丼、かつ丼、牛丼などの乗せるものは自由で、
乗せる具材は自前で用意するものと、公式で作られているもの(Docker 公式イメージ)が
あるという、今はこんな理解だが間違っているところもありそうだ。
Oracleは自分でイメージを作成する必要がある
PostgreSQLは公式のイメージがあるらしい。(今度やる)
参考にさせてもらったサイト!
Windows10 Home で WSL2 を使えるようにし、Ubuntu をインストールして Windows Terminal から起動するまでの手順
WSL2のUbuntuでDockerを使う
【Docker】Oracleを無料で簡単にローカルに構築する
ここからはメモ。
Windowsでやること
- 設定その1
--- Linux 用 Windows サブシステムを有効にする
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
--- 仮想マシンの機能を有効にする
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
- 設定その2 Linux カーネル更新プログラムパッケージをインストールする
--- WSL 2 を既定のバージョンとして設定
wsl --set-default-version 2
- Microsoft Store から Ubuntuをダウンロードする
- Windows Terminalもダウンロードする
Ubuntuでやること
- イメージを作成するやつをダウンロード https://github.com/oracle/docker-images
- \\wsl$ でダウンロードしたファイルをUbuntuで見えるところに置く
- コンテナイメージを作成するシェルをたたく
images\OracleDatabase\SingleInstance\dockerfiles\buildContainerImage.sh -v 21.3.0 -x -i
確認のコマンドはこれ。これでイメージ準備完了
docker images
- コンテナ定義ファイルを作成する
version: '3'
services:
db:
image: oracle/database:21.3.0-xe
container_name: oracle21c
ports:
- 1521:1521
volumes:
- db-store:/opt/oracle/oradata
environment:
- ORACLE_PWD=ここはパスワードを入れる
volumes:
db-store:
- 起動(結構時間かかる。ログみるコマンドは何度もたたいた)
docker-compose up -d
docker-compose logs ログみる
ここまで。
そのほかコマンド
docker ps --all
docker start xxx
docker stop xxx
sudo service --status-all
sudo service docker start
docker container exec -it コンテナのID bash
find / -name sqlplus
最後に
なんでOracleを動かしたいのかを忘れてしまった