docker安装 windows docker安装windows server2012
为什么使用了Docker而不直接安装Oracle数据库: 为了学习完卸载方便. 同时也为了转换数据库版本或者同时安装多个数据库方便,并且最后卸载的时候方便.(Oracle在Win10上卸载的时候,需要手动删除修改注册表和服务项,非常费事)
全文步骤:
拉取Oracle 官方提供的镜像.
首先前往DockerHub上该镜像的地址: 链接 , 然后注册并登陆自己的DockerHub账号以及Oracle账号,并点击同意镜像的使用协议.
然后在Docker桌面端启动并登陆的条件下, 选择下面两个版本中的一个:
- Oracle Database Server 12.2.0.1 Enterprise Edition (完整版)
- Oracle Database Server 12.2.0.1 Enterprise Edition Slim Variant (精簡版)
Slim Variant
然后在powershell或者cmd中执行下面的两个命令中的对应一个(第二个是精简版):
最后输入下面的命令启动镜像:
另外如果你想保留本次容器執行所建立的資料庫,可以透過 docker volume mapping 做到:
在Powershell或者其他工具连接镜像登陆数据库
官方容器的預設帳號密碼如下:
- SID:ORCLCDB
- 帳號:SYS
- 密碼:Oradoc_db1
如果不從外部連線的話(不从其他电脑连接,只在本电脑使用),可以直接在powershell中通过 docker exec 命令從 Oracle 容器中執行 sqlplus 工具:
接著可以透過以下 SQL 命令登入 SYS 為 SYSDBA 角色:
或是直接在執行 sqlplus 時就直接登入(将上面两条命令合并为一条):
建議第一次登入就先修改 SYS 預設密碼,請參考以下命令進行修改: ALTER USER SYS IDENTIFIED BY <new-password>;
如果要透過Oracle SQL Developer登入,可以參考以下截圖進行設定(如果使用其他数据库管理IDE,如DBviewer等,配置都类似):(如果不选SID而是选服务名的话,应该填ORCLCDB.localdomain)
建立用户
當 Oracle 容器完全啟動之後,悲劇也就開始發生了,因為我連一個使用者都無法建立!
因為 Oracle 資料庫跑在容器中,有著不同的安全性架構,從 Oracle 12cR1 開始,因為新增了多租戶架構(multitenant architecture),可以讓你在一個資料庫容器中執行多個租戶資料庫(tenant databases),所以建立使用者的 SQL 命令稍微有點不一樣,而這個問題對一個不常使用 Oracle 的開發者來說也太困難了。
如果你用傳統的 SQL 命令建立一個新用戶,就會得到這個錯誤:ORA-65096: invalid common user or role name:
而正確建立使用者的方法,應該用以下 SQL 命令:
接著就可以用新帳號登入連線:
刪除用户
基本上,只要跟「使用者」相關的操作,在 Oracle 容器中都會遇到問題,所以若要刪除上一節所建立的 WILL 帳號的話,必須使用以下 SQL 命令:
建立用户并建立数据库
首先打开Dockers中该镜像的CLI:
然后运行下面的命令建立一个:
然后回到刚刚的powershell 建立表空间Test:
然后注册用户(用户test,密码123456)并配置Test表空间的权限:
然后登陆该用户并向表空间中填入数据:
验证数据是否写入:
参考:
- The Will Will Web
docker安装windows10 docker安装windows2008r2
Windows docker安装Sqlserver docker安装sqlserver2012
10 docker安装使用 windows windows docker安装部署
docker for windows下载和安装-Windows10版本docker安装windows软件
docker 安装步骤 windows docker安装windows10
10 docker环境安装 windows docker安装windows容器
Windows Server 2012之部署Windows Server 更新服务(3)安装windows server 2012
windows server 2003AD升级windows server 2012AD安装windows server 2003
Docker的三种网络代理配置:dockerd pull镜像代理;容器docker run网络代理;docker build代理--build-argdocker pull 代理