注意:oracle占用资源较多,建议准备的虚拟机硬盘大于20G,内存大于2G。
一.拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
镜像有点大,拉取完成后可通过docker images确认镜像
二.创建数据卷挂载目录及给目录授权
# 创建文件
mkdir -p /home/data/oracle/oradata
# 授权,不授权会导致后面安装失败
chmod 777 /home/data/oracle/oradata
三.启动镜像
docker run -d \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_SID=ORCLCDB \
-e ORACLE_PDB=ORCLPDB \
-e ORACLE_PWD=123456 \
-e ORACLE_EDITION=standard \
-e ORACLE_CHARACTERSET=AL32UTF8 \
-v /home/data/oracle/oradata:/opt/oracle/oradata \
--name orcl19c \
--restart always \
registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
注意: 本创建命令使用了 --restart always 使得oracle会在关闭后自动启动。
如果是已经创建好的容器想要自启动:docker update --restart always orcl19c
参数说明
- -d:在后台运行容器。
- -p 1521:1521:将容器的1521端口映射到主机的1521端口(用于Oracle数据库连接)。
- -p 5500:5500:将容器的5500端口映射到主机的5500端口(用于Oracle Enterprise Manager)。
- -e ORACLE_SID=ORCLCDB:设置Oracle的SID为ORCLCDB。
- -e ORACLE_PDB=ORCLPDB:设置Oracle的PDB(可插拔数据库)为ORCLPDB。
- -e ORACLE_PWD=123456:设置Oracle的密码为123456(请根据需要更改)。
- -e ORACLE_EDITION=standard:设置Oracle的版本为标准版。
- -e ORACLE_CHARACTERSET=AL32UTF8:设置Oracle的字符集为AL32UTF8。
- -v /home/data/oracle/oradata:/opt/oracle/oradata:将主机的/home/data/oracle/oradata目录挂载到容器的/opt/oracle/oradata目录。
- --name orcl19c:为容器指定一个名称为orcl19c。
- registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c:使用指定的Docker镜像。
通过命令查看日志
docker logs -ft orcl19c
启动过程耗时较长,需耐心等待。
四.容器启动,进入容器
docker exec -it orcl19c /bin/bash
登录sqlplus 创建PDB用户
sqlplus / as sysdba
查看show pdbs
show pdbs
创建用户
//切换数据库
alter session set container=ORCLPDB;
# create user 用户名 identified by 密码;
create user root identified by root;
//授权
grant dba to root;
客户端连接