ps0*_*604 2 oracle windows docker
我正在尝试在 Windows 10 的 docker 容器中安装 Oracle XE 18c。我已经安装了 docker,我需要按照此处的说明构建映像。
我克隆了 git 存储库,但我坚持这一步,因为我克隆的是 Linux 命令而不是 Windows。
克隆后:
git clone https://github.com/oracle/docker-images.git
Run Code Online (Sandbox Code Playgroud)
如果我cd
要docker-images\OracleDatabase\SingleInstance\dockerfiles\18.4.0
构建图像,我会看到以下命令sh
,而不是exe
or 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
Run Code Online (Sandbox Code Playgroud)
如何在 Windows 中构建此映像?
小智 8
使用 Wsl Ubuntu Bash 设置 Docker 可执行文件的路径,或者简单地从 Docker 工具安装适用于 Windows 的 Git Bash 并从 Git Bash 终端运行 shell 脚本(我更喜欢 Git Bash)。将 Oracle18xe rpm 文件下载并复制到 18.40 文件夹
这是 Windows 版 Git Bash 的输出
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
Run Code Online (Sandbox Code Playgroud)
成功运行shell脚本后
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
Run Code Online (Sandbox Code Playgroud)
您可以通过 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
Run Code Online (Sandbox Code Playgroud)
PS:-确保您从 git bash 终端登录到 docker hub
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
Run Code Online (Sandbox Code Playgroud)
从 WSL Bash 终端
xxxx@localhost:~# docker -v
Docker version 19.03.8, build afacb8b
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4017 次 |
最近记录: |