web-dev-qa-db-ja.com

Windows 10 ProでのOracle XE Dockerイメージの構築

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でこのイメージをビルドする方法は?

2
ps0604

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
5
Kumar

はい、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アンドレアス

0
Andreas J