WinServer部署Docker for Windows 并在其中部署OracleDb11g
写在前面:
本文环境:windows server 2019 1809版本/奔腾双核2.8G/8G内存/Docker Desktop2.3.0.3(即Docker for windows)
1.确认CPU支持虚拟化并且主板bois中开启了CPU虚拟化
2.安装Hyper-V
通过操作系统添加删除角色(win10是添加删除功能)安装。安装中或者安装后配置一下网络(这一步对Docker不是必选项,主要是为了以后方便使用虚拟机)
3.安装Docker for Windows
官方地址https://www.docker.com/products/docker-desktop 我这里安装时版本是2.3.0.3
安装时记得购选 Enable Hyper-V Vindows Features.
Docker for windows 如果运行环境是Linux则Docker用系统Hyper虚拟机创建运行需要的Linux环境。
安装完桌面会有如下图标,桌面系统托盘区也会有Docker的图标。操作时docker都会有系统消息提醒。
4.配置阿里云的本地镜像用于加速。
docker最方便的地方就算有官方和第三方上传的已经安装和配置好的应用软件环境。本文的oracle就算通过这种方式部署。阿里云提供本地镜像加速功能非常实用。
申请一下就可以,目前免费。
整完之后可以登陆一下(可选)
安装完之后,直接通过powershell就可以运行docker命令
6.安装Oracle
6.1 可以通过搜索官方库,然后在现有库里选择一个安装。例如可以直接安装下面搜出来的那一条。
6.2 这里我直接别的帖子里介绍的,使用阿里云的镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
6.3 启动oracle镜像作为容器 docker run -d -p 1521:1521 --name oracle11g registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
6.4 这个时候docker就已经在 虚拟机里创建一个用于运行Linux环境的虚拟机 2内核 2G内存(我物理机配置双核 8G内存),docker for windows 是可以模拟应用环境跑在Windows环境下,但是Linux环境和Windows环境只能二选一。目前服务器类应用还是Linux环境用的多,docker安装后默认就算此模式这里就不修改了。
6.5 配置oralce
进入oracle11g的docker运行环境 docker exec -it oracle11g bash
阿里云这个镜像Oracle安装路径 /home/oracle/app/oracle/product/11.2.0/dbhome_2中
配置环境变量
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=$ORACLE_HOME/bin:$PATH
依次执行以下命令,启用system用户sqlplus /nolog
conn /as sysdba;
alter user system identified by oracle;
//这里是把system用户密码设为oracleconn system/oracle;
查看安装的版本是64位的11.2.0.1(最新补丁是11.2.0.4)
6.6最后测试连接
6.8如果需要修改实例名和数据库名。
可以参考 参考文档3:Oracle11g修改实例名和数据库名 2018-12-12 liaoyanyunde 比较费时费事。
7.其他说明
网上有很多教程是使用toolbox进行安装的。
http://mirrors.aliyun.com/docker-toolbox/windows/docker-toolbox/ 阿里云有连接。这个套件最新的版本是18年的18.03。是个早期的docker套件,当时还没支持Hyper-V,所以套件用VirtualBox作为虚拟机。阿里云相关文档说明很详细,建议win10以下操作系统使用toolbox,win10及对应服务器操作系统使用Docker for Windows也就是本文安装版本。
参考文档:
1.win10安装Docker 再用Docker安装Oracle 2020-02-19 笑等茶凉
2.如何在windows下安装docker及oracle 2018-04-18 isscollege
3.Oracle11g修改实例名和数据库名 2018-12-12 liaoyanyunde