Windows 10のDockerコンテナーにOracle XE 18cをインストールしようとしています。Dockerがすでにインストールされており、説明に従ってイメージをビルドする必要があります ここ 。
Gitリポジトリのクローンを作成しましたが、WindowsではなくLinuxコマンドであるため、このステップで立ち往生しています。
クローンした後:
git clone https://github.com/Oracle/docker-images.git
もしcd
to docker-images\OracleDatabase\SingleInstance\dockerfiles\18.4.0
イメージをビルドするには、sh
またはexe
の代わりに、次のbat
コマンドが表示されます。
12/28/2019 01:36 PM 1,137 checkDBStatus.sh
12/28/2019 01:36 PM 905 checkSpace.sh
12/28/2019 01:36 PM 75 Checksum.xe
12/28/2019 01:36 PM 2,752 Dockerfile.xe
12/28/2019 01:36 PM 533 Oracle-xe-18c.conf
12/28/2019 01:36 PM 6,132 runOracle.sh
12/28/2019 01:36 PM 775 setPassword.sh
Windowsでこのイメージをビルドする方法は?
Docker実行可能ファイルへのWsl Ubuntu Bashセットパスを使用するか、Docker ToolsからWindows用のGit Bashをインストールし、Git Bashターミナルからシェルスクリプトを実行します(Git Bashが好きです)Oracle18xe rpmファイルをダウンロードして18.40フォルダにコピーします
これはGit Bash for windowsからの出力です
xxx@localhost MINGW64 /d/docker-images/OracleDatabase/SingleInstance/dockerfiles/18.4.0 (master)
$ ls -lrt
total 2513906
-rw-r--r-- 1 user 197121 74 Dec 28 13:17 Checksum.xe
-rw-r--r-- 1 user 197121 2675 Dec 28 13:17 Dockerfile.xe
-rwxr-xr-x 1 user 197121 1137 Dec 28 13:17 checkDBStatus.sh*
-rwxr-xr-x 1 user 197121 905 Dec 28 13:17 checkSpace.sh*
-rw-r--r-- 1 user 197121 533 Dec 28 13:17 Oracle-xe-18c.conf
-rwxr-xr-x 1 user 197121 6132 Dec 28 13:17 runOracle.sh*
-rwxr-xr-x 1 user 197121 775 Dec 28 13:17 setPassword.sh*
-rw-r--r-- 1 user 197121 2574155124 Dec 28 13:48 Oracle-database-xe-18c-1.0-1.x86_64.rpm
シェルスクリプトを正常に実行した後
xxx@localhost MINGW64 /d/docker-images/OracleDatabase/SingleInstance/dockerfiles/18.4.0 (master)
$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
Oracle/database 18.4.0-xe 19b38be42ae6 30 minutes ago 8.44GB
oraclelinux 7-slim 0d49b70bc432 9 days ago 118MB
xxx@localhost MINGW64 /d/docker-images/OracleDatabase/SingleInstance/dockerfiles (master)
$ docker run --name myxedb \
> -d \
> -p 51521:1521 \
> -p 55500:5500 \
> -e Oracle_PWD=xxxxxxx \
> -e Oracle_CHARACTERSET=AL32UTF8 \
> Oracle/database:18.4.0-xe
xxx@localhost MINGW64 /d/docker-images/OracleDatabase/SingleInstance/dockerfiles/18.4.0 (master)
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
afce013adb98 Oracle/database:18.4.0-xe "/bin/sh -c 'exec $O…" 19 seconds ago Up 16 seconds (health: starting) 8080/tcp, 0.0.0.0:51521->1521/tcp, 0.0.0.0:55500->5500/tcp myxedb
Sqlplus経由でデータベースに接続するか、Windows Dosを使用してdockerコンテナーにログインできます。
D:\>docker exec -it --user=Oracle myxedb bash
[Oracle@afce013adb98 /]$ . oraenv
Oracle_SID = [XE] ?
The Oracle base remains unchanged with value /opt/Oracle
[Oracle@afce013adb98 /]$ sqlplus / as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Sun Dec 29 05:04:32 2019
Version 18.4.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Connected to:
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0
SQL> select banner from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 18c Express Edition Release 18.0.0.0.0 - Production
P.S:git bashターミナルからDockerハブにログインしていることを確認してください
docker login
WSLサブシステムbashターミナルを使用するには、パスとエイリアスを.bashrcに追加します
export PATH="$HOME/bin:$HOME/.local/bin:/mnt/c/Program\Files/Docker/Docker/resources/bin:$PATH"
alias docker=docker.exe
alias docker-compose=docker-compose.exe
WSL Bashターミナルから
xxxx@localhost:~# docker -v
Docker version 19.03.8, build afacb8b
はい、DockerにはWSLまたはWSL 2を使用することをお勧めします。
しかし、公式のDockerfileを使用してOracle 18c Dockerイメージを構築する別の(簡単な?)方法があります(これが必要な場合は、WSL/WSL2内からこの方法を使用することもできます)。
(Linux/Bash)スクリプトbuildDockerImage.shは、dockerを呼び出すコマンドを構築する(チェックサムなどをチェックする)単なるヘルパーであることに注意してください。つまり、利用可能なDockerfileを使用してイメージを直接ビルドできます。 Dockerfile.xe(18.0.4の場合)。
フォルダ「18.4.0」(Oracleからダウンロードしたデータベース(Linux-Version!)も保存した場所)から、次のように入力します。
docker build -t [image name of your choosing] -f Dockerfile.xe .
[必ず含めてください。 (ドット)これはドッカーに「このフォルダー」を指示するため、最後に]
これには約40〜50分かかることに注意してください。私はこれを(WSL 2の前に)この方法で行いましたが、私にとっては非常にうまくいきました。
HTHアンドレアス