Docker快速安装Oracle 12c
创始人
2024-02-20 17:25:09

【Oracle系列3】Docker快速安装Oracle 12c

背景

现在还很多企业用12c,以这个版本为例,介绍docker快速启动Oracle并做实验

步骤

1、docker环境的安装(略)
2、查询镜像,挑选镜像
docker search oracle

结果

StoneMakPro2019:~ stonewang$ docker search oracle
NAME                              DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
oraclelinux                       Official Docker builds of Oracle Linux.         951       [OK]       
oracleinanutshell/oracle-xe-11g                                                   242                  
gvenzl/oracle-xe                  Oracle Database XE (21c, 18c, 11g) for every…   132                  
wnameless/oracle-xe-11g-r2        Oracle Express Edition 11g Release 2 on Ubun…   90                   
truevoly/oracle-12c               Copy of sath89/oracle-12c image (https://git…   47                   
quillbuilduser/oracle-18-xe       Oracle 18c XE Image for Quill Testing Purpos…   28                   
oracledb19c/oracle.19.3.0-ee                                                      19                   
iamseth/oracledb_exporter         A Prometheus exporter for Oracle modeled aft…   5                    
oraclecoherence/coherence-ce      Coherence Community Edition                     5                    
18fgsa/oracle-client              Hosted version of the Oracle Container Image…   2                    
kasmweb/oracle-8-desktop          Oracle Linux 8 desktop for Kasm Workspaces      2                    
kasmweb/core-oracle-8             Oracle Linux 8 base image for Kasm Workspace…   1                    
kasmweb/core-oracle-7             Oracle Linux 7 base image for Kasm Workspace…   1                    
dokken/oraclelinux-7              Oracle Linux 7 image for kitchen-dokken         1                    
dokken/oraclelinux-8                                                              1                    
kasmweb/oracle-7-desktop          Oracle Linux 7 desktop for Kasm Workspaces      1                    
redislabs/redis-connect-oracle    Redis Connect Oracle Connector for Continuou…   1                    
oracledemo1/hello-world           Test docker build from github                   0                    [OK]
bitnami/oraclelinux-runtimes      Oracle Linux runtime-optimized images           0                    [OK]
dokken/oraclelinux-9                                                              0                    
oraclejmx/docker_jmx                                                              0                    
bitnami/oraclelinux-extras        Oracle Linux base images                        0                    [OK]
oraclejp/weather-collector                                                        0                    
dokken/oraclelinux-6              Oracle Linux 6 image for kitchen-dokken         0                    
bitnami/oraclelinux-extras-base                                                   0                    
StoneMakPro2019:~ stonewang$ 

选择truevoly/oracle-12c这个镜像,我们不用官方那个,即上面第一个,因为官方没有想要的版本

另外,其实可以到 hub.docker.com 中搜索,跟命令行搜出来是差不多的

在这里插入图片描述

也有这个

在这里插入图片描述

3、下载镜像
StoneMakPro2019:~ stonewang$ docker pull docker.io/truevoly/oracle-12c

下载好后使用 docker images 确认一下,可以看到镜像5.7G挺大的

StoneMakPro2019:~ stonewang$ docker images
REPOSITORY            TAG       IMAGE ID       CREATED       SIZE
redis                 latest    c2342258f8ca   4 weeks ago   117MB
truevoly/oracle-12c   latest    21789d4d876f   3 years ago   5.7GB
StoneMakPro2019:~ stonewang$
4、创建数据备份的目录

在宿主机创建这样的目录,我是mac,win的话应该是差不都吧?

mkdir /Users/stonewang/dev/thirdparty/oracle_data  && chmod 777 /Users/stonewang/dev/thirdparty/oracle_data
5、启动

以image为模板启动

docker run --restart always -d -p 8080:8080 -p 1521:1521 -v /Users/stonewang/dev/thirdparty/oracle_data:/home/oracle/data_temp   -v /etc/localtime:/etc/localtime:ro  --name oracle truevoly/oracle-12c

执行之后会返回容器的id (要改的话改前面的路径即可,比如改/Users/stonewang/dev/thirdparty/oracle_data--name oracle 是容器名可以改可以不改,其他可以保持不变即可)

StoneMakPro2019:~ stonewang$ docker run --restart always -d -p 8080:8080 -p 1521:1521 -v /Users/stonewang/dev/thirdparty/oracle_data:/home/oracle/data_temp   -v /etc/localtime:/etc/localtime:ro  --name oracle truevoly/oracle-12c
90128ded2a6b96e57d8696acf06f7b0ac31ca160919accf6bdd6c3f43593d1b9

在用容器id查进度

StoneMakPro2019:~ stonewang$ docker logs -f 90128ded2a6b96e57d8696acf06f7b0ac31ca160919accf6bdd6c3f43593d1b9
Database not initialized. Initializing database.
Starting tnslsnr
Copying database files
1% complete
3% complete
11% complete

等到100%之后再继续提示如下,按下ctrl+c退出

Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/xe/xe.log" for further details.
Configuring Apex console
Database initialized. Please visit http://#containeer:8080/em http://#containeer:8080/apex for extra configuration if needed
Starting web management consolePL/SQL procedure successfully completed.Starting import from '/docker-entrypoint-initdb.d':
ls: cannot access /docker-entrypoint-initdb.d/*: No such file or directory
Import finishedDatabase ready to use. Enjoy! ;)

其实不用等到100%也可以登录上去,但是呢,再执行其他命令会有点异常,所以还是等到100%之后再说,需要几分钟时间。

6、查看运行中的容器,并进入容器

查看运行中的容器有没有叫

docker ps

结果

StoneMakPro2019:~ stonewang$ docker ps
CONTAINER ID   IMAGE                 COMMAND             CREATED         STATUS         PORTS                                            NAMES
90128ded2a6b   truevoly/oracle-12c   "/entrypoint.sh "   8 minutes ago   Up 8 minutes   0.0.0.0:1521->1521/tcp, 0.0.0.0:8080->8080/tcp   oracle
StoneMakPro2019:~ stonewang$

进入容器(要带有/bin/bash)

docker exec -it 90128ded2a6b /bin/bash

结果

StoneMakPro2019:~ stonewang$ docker exec -it 90128ded2a6b /bin/bash
root@90128ded2a6b:/# 
7、验证

在上述的结果输入 sqlplus 后回车

StoneMakPro2019:~ stonewang$ docker exec -it 90128ded2a6b /bin/bash
root@90128ded2a6b:/# sqlplusSQL*Plus: Release 12.1.0.2.0 Production on Sun Nov 27 19:56:03 2022Copyright (c) 1982, 2014, Oracle.  All rights reserved.Enter user-name: system
Enter password: Connected to:
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit ProductionSQL> show user 
USER is "SYSTEM"
SQL> 

内置的账号有

system,密码oracle

sys as sysdba,密码oracle(sys账号要用 as sysdba)

Enter user-name: sys as sysdba
Enter password: Connected to:
Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit ProductionSQL> show user
USER is "SYS"
SQL> 

show user 显示当前登录的账号。

7、也可以使用Navicat之类的连接

更加直观,system账号登录,按图填写,如Basic,1521,xe,选Service Name,Role为Default

在这里插入图片描述

sys账号登录

在这里插入图片描述

后续

如何关闭?

# 查看正在运行的容器,查看哪个是oracle的
docker ps
# 停止容器(后接容器ID)
docker stop 90128ded2a6b

如下次还需要用则启动一下即可

# 查看所有容器(因为docker ps只查运行中的容器,现在要启动,自然要能查看到已经停止的Oracle容器ID)
docker ps -a
# 启动容器(后接容器ID)
docker start 90128ded2a6b

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...