1.下载镜像

到 https://hub.docker.com 搜索合适的镜像,这里选择banglamon/oracle193db:19.3.0-ee。

 拉取镜像

docker pull banglamon/oracle193db:19.3.0-ee

这里走了点弯路,这个镜像安装后实例无法正常启动,而且挂载的目录下面没有生成文件,想办法启动以后sqlplus能用,但容器外部连接报ora-15214错误搞不定了,所以参考这位同学的教程换了个镜像。Docker安装Oracle19c史上最全步骤(图文并茂)_程序猿的Code日常的博客-CSDN博客_docker安装oracle19c

#拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c

2.创建挂载目录

# 创建目录
mkdir -p /mydata/oracle/oradata

# 授权
chmod 777 /mydata/oracle/oradata

3.安装

docker run -d  \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_SID=ORCL \
-e ORACLE_PDB=ORCLPDB \
-e ORACLE_PWD=orcl \
-e ORACLE_EDITION=standard \
-e ORACLE_CHARACTERSET=ZHS16GBK \
-v /mydata/oracle/oradata:/opt/oracle/oradata \
--name oracle19c \
registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c

安装时间比较长,过程中可以通过日志监控安装情况

docker logs -ft oracle19c

看到如上图结果,就安装完成了。

4.连接oracle

#打开容器终端
docker exec -it oracle19c /bin/bash

#sqlplus登录
#sysdba身份登录,默认进入CDB
sqlplus / as sysdba
#进入CDB
sqlplus system/orcl@localhost:1521/orcl
#进入PDB
sqlplus pdbadmin/orcl@localhost:1521/orclpdb

#查看连接模式
SQL>show con_name

5.登录网页管理端 https://ip:5500/em

6.登录plsql developer

配置oci路径,这里用的是instantclient19_3,可以到官网下载适合的版本,据网页上所说版本19及以上不支持win7。

https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html

 测试中文显示是否乱码

select '中文' from dual;

出现乱码就编辑客户端环境变量

NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK

 6.jdbc连接oracle

由于安装时启用了容器,需要把端口号后面的:换成/,后面的sid名换成pdb名。

 

失败后的回滚

第一次使用banglamon/oracle193db:19.3.0-ee镜像安装,启动失败后的处理:删除容器,删除镜像,拉取另一个镜像重新安装。

先停止,再删除容器

docker stop oracle19c
docker rm oracle19c

然后发现磁盘空间没有完全释放,使用图形化docker管理工具portainer进行清理。

#拉取portainer镜像
docker pull docker.io/portainer/portainer

#安装
docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name portainer docker.io/portainer/portainer

安装完成后通过浏览器访问:http://ip:9000,首次进入需要设置密码,然后选择本地docker就好。 

进入volumes,选择带有unused标记的删除即可。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐