一、下载oracle安装包
此处省略,可以注册oracle官网地址或者从其他渠道获取
二、build docker镜像
1、克隆oracle官方镜像构建工程,地址如下
https://github.com/oracle/docker-images.git
2、进入构建目录,例如
/home/software/oracle-docker/docker-images/OracleDatabase/SingleInstance/dockerfiles
将下载的oracle二进制安装包修改名称,放到对应的版本号对应的目录下
例如本次下载的12.2.0.1版本,下载后文件名称是linux64.zip,修改压缩包名称为 linuxx64_12201_database.zip,然后放置到克隆下来的
/home/software/oracle-docker/docker-images/OracleDatabase/SingleInstance/dockerfiles/12.2.0.1 路径下
3、执行build(build前docker要更新到19版本,否则会报错)
进入docker-images/OracleDatabase/SingleInstance/dockerfiles目录,按照我们下载的oracle版本进行build
sh buildContainerImage.sh -v 12.2.0.1 -t oracle1201:1.0 -s
三、运行container
build成功之后会自动load镜像,按照说明参数正常启动即可
docker run --name oracle1201 \
-p 1521:1521 -p 5500:5500 -p 2484:2484 \
--ulimit nofile=1024:65536 --ulimit nproc=2047:16384 --ulimit stack=10485760:33554432 --ulimit memlock=3221225472 \
-e ORACLE_SID=orcl \
-e ORACLE_PDB=pdb1 \
-e ORACLE_PWD=test1234 \
-e INIT_SGA_SIZE=1024 \
-e INIT_PGA_SIZE=1024 \
-e INIT_CPU_COUNT=2 \
-e INIT_PROCESSES=16 \
-e ORACLE_EDITION=12.2.0.1 \
-e ORACLE_CHARACTERSET=AL32UTF8 \
-e ENABLE_ARCHIVELOG=true \
-e ENABLE_TCPS=true \
-v /data1/oracle_data:/opt/oracle/oradata \
oracle1201:1.0
运行参数最后的-v目录映射时,主机上的目录可以指定777权限,以免运行容器时写权限不足
容器启动时,会打印创建database的过程日志,这里有个问题,如果是当前终端执行,docker run会占用当前的终端,Ctrl+C终端会停止容器,所以可以后台方式启动上面的容器
四、登录oracle
如果容器启动正常,就可以使用主机地址正常访问,sys密码就是容器启动时ORACLE_PWD参数指定的密码
sqlplus sys/test1234@//9.168.12.22:1521/orcl as sysdba
上面的步骤在官方指定中都有说明,原文地址如下:
https://github.com/oracle/docker-images/blob/main/OracleDatabase/SingleInstance/README.md