- 拉取镜像
docker pull registry.cn-hangzhou.aliyuncs.com/lhrbest/oracle_12cr2_ee_lhr_12.2.0.1:2.0 Trying to pull registry.cn-hangzhou.aliyuncs.com/lhrbest/oracle_12cr2_ee_lhr_12.2.0.1:2.0... Getting image source signatures Copying blob 2bbf3863a307 done Copying config eb1a87913a done Writing manifest to image destination Storing signatures eb1a87913afe19faaa6c654619afcd3d724e9eb69c20e2246290259e6224faca- 查看镜像
docker image list -a REPOSITORY TAG IMAGE ID CREATED SIZE registry.cn-hangzhou.aliyuncs.com/lhrbest/oracle_12cr2_ee_lhr_12.2.0.1 2.0 eb1a87913afe 5 years ago 16.2 GB- 创建目录并设置权限
wsl环境, 在C盘d目录下建立oracle12g
cd /mnt/c/d mkdir -p oracle12g/ora_data mkdir -p oracle12g/data_temp chmod 777 oracle12g- 启动容器
注意:不要使用刚才创建的目录,否则会找不到路径,如下所示
docker run -itd --name oracle12c \ --privileged=true \ --restart=always \ -p 1521:1521 \ -p 5500:5500 \ -p 5501:5501 \ -p 5522:22 \ -p 3389:3389 \ -v /mnt/c/d/oracle12g/data_temp:/home/oracle/data_temp \ -v /mnt/c/d/oracle12g/ora_data:/u01/app/oracle/ \ eb1a87913afe init 597bce2c1ffb181001a7adeae6318690170d0cfa7bc5b41db41a254ac2e377b5 docker exec -it oracle12c /bin/bash [root@597bce2c1ffb /]# su - oracle Last login: Fri Aug 21 11:24:52 CST 2020 on pts/4 [oracle@597bce2c1ffb ~]$ sqlplus system/oracle rlwrap: error: Cannot execute sqlplus: No such file or directory这是因为rlwrap引用的路径被-v 参数指定到了刚才创建的宿主目录,那个目录下没有内容。
正确的写法如下,将刚才创建的目录映射到容器中一个无关的路径/par。在此之前先删除错误的容器。
docker stop oracle12c oracle12c docker rm oracle12c 597bce2c1ffb181001a7adeae6318690170d0cfa7bc5b41db41a254ac2e377b5 docker run -itd --name oracle12c \ --privileged=true \ --restart=always \ -p 1521:1521 \ -p 5500:5500 \ -p 5501:5501 \ -p 5522:22 \ -p 3389:3389 \ -v /mnt/c/d/oracle12g/ora_data:/par \ eb1a87913afe init 03796669a3be7c1ed904ae7d60724a06283af463abd32b06e63d0e273bd47392 docker exec -it oracle12c /bin/bash [root@03796669a3be /]# su - oracle Last login: Fri Aug 21 11:24:52 CST 2020 on pts/4 [oracle@03796669a3be ~]$ sqlplus / as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Sun Dec 21 10:26:12 2025 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to an idle instance.- 启动数据库实例
直接启动报错
SYS@lhrcdb1> startup ORA-00821: Specified value of sga_target 768M is too small, needs to be at least 872M ORA-01078: failure in processing system parameters用如下命令将spfile的内容保存到参数文件pfile(文件名是init+ORACLE_SID+.ora), 并退出sqlplus修改pfile相应行,然后进入sqlplus用参数文件pfile启动。
SYS@lhrcdb1> create pfile from spfile; File created. SYS@lhrcdb1> exit; Disconnected [oracle@03796669a3be dbs]$ ls hc_lhrcdb1.dat initlhrcdb1.ora lkLHRCDB1 orapwlhrcdb1 snapcf_lhrcdb1.f spfilelhrcdb1.ora hc_lhrsdb.dat init.ora lkLHRSDB orapwlhrsdb snapcf_lhrsdb.f spfilelhrsdb.ora [oracle@03796669a3be dbs]$ vi initlhrcdb1.ora [oracle@03796669a3be dbs]$ sqlplus / as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Sun Dec 21 10:35:35 2025 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to an idle instance. SYS@lhrcdb1> startup pfile='/u01/app/oracle/product/12.2.0.1/dbhome_1/dbs/initlhrcdb1.ora'; ORACLE instance started. Total System Global Area 1015021568 bytes Fixed Size 8800328 bytes Variable Size 771753912 bytes Database Buffers 226492416 bytes Redo Buffers 7974912 bytes Database mounted. Database opened.数据库就可以使用了。