网上找到的镜像,如:doctorkirk/oracle-19c
、registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
,都是linux/amd64版本,M系列芯片一般也是支持linux/amd64的镜像运行的,但是oracle的这两个镜像运行不起来,索性自己基于官方提供的Dockerfile构建一个镜像。
不想自己构建镜像的,可以跳转到最后,直接在线拉取成品。
1 构建镜像
- 拉取官方镜像构建仓库
git clone https://github.com/oracle/docker-images
- 下载oracle二进制文件
地址:ARM64版本,这里下载的是:LINUX.ARM64_1919000_db_home.zip
- 复制安装包
将安装包复制到OracleDatabase/SingleInstance/dockerfiles/19.3.0
,不解压
- 构建镜像
这里打包出来的镜像,是19.3.0的tag,手动改一下就行
cd OracleDatabase/SingleInstance/dockerfiles
# 此过程可能持续时间有点儿久,慢慢等待即可
./buildContainerImage.sh -v 19.3.0 -e
docker tag oracle/database:19.3.0-ee oracle/database:19.19.0-ee
docker rmi oracle/database:19.3.0-ee
2 挂载目录
# 创建文件
mkdir -p /vm-data/oracle-19c/oradata
# 授权,不授权会导致后面安装失败
chmod 777 /vm-data/oracle-19c/oradata
3 容器运行
docker run -d \
-p 1521:1521 \
-p 5500:5500 \
-e ORACLE_PDB=ORCL \
-e ORACLE_PWD=123456 \
-e ORACLE_CHARACTERSET=AL32UTF8 \
-e INIT_SGA_SIZE=3000 \
-e INIT_PGA_SIZE=1000 \
-v /vm-data/oracle-19c/oradata:/opt/oracle/oradata \
--name oracle19c \
oracle/database:19.19.0-ee
4 连接
docker exec -it oracle19c /bin/bash
# 如果需要root权限进入
docker exec -u 0 -it oracle19c /bin/bash
sqlplus / as sysdba
show pdbs;
使用连接工具连接
- 地址:localhost
- 端口:1521
- 服务名:ORCL
- 用户名:sys
- 密码:123456
- 权限:SYSDBA
访问em:https://localhost:5500/em,需要https
5 镜像成品
目前已经公开可供直接拉取
docker pull kangaroo1122-docker.pkg.coding.net/project/public/oracle:19.19.0-ee-arm64
拉取镜像加速地址:https://mirror.ccs.tencentyun.com
或者拉取以下镜像,支持两个平台
docker pull kangaroo1122-docker.pkg.coding.net/project/public/oracle:19c-ee