Docker快速安装Oracle 12c

news2025/1/21 10:19:54

【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 console

PL/SQL procedure successfully completed.

Starting import from '/docker-entrypoint-initdb.d':
ls: cannot access /docker-entrypoint-initdb.d/*: No such file or directory
Import finished

Database 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:/# sqlplus

SQL*Plus: Release 12.1.0.2.0 Production on Sun Nov 27 19:56:03 2022

Copyright (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 Production

SQL> 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 Production

SQL> 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/40724.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里P8架构师都在学习参考的SpringCloud微服务实战文档

我一直在使用Spring Boot、Spring Data等框架来进行开发工作。 作为一名Spring系列的忠实粉丝,我自然希望能够有更多的开发者参与进来,于是自己坚持写Spring Cloud相关的文章,并且将文章涉及的代码整理后放在GitHub上分享。 这使我得到了很…

【Hack The Box】Linux练习-- Luanne

HTB 学习笔记 【Hack The Box】Linux练习-- Luanne 🔥系列专栏:Hack The Box 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📆首发时间:🌴2022年11月24日🌴 &#x1f3…

零基础搭建基于知识图谱的电影问答系统

零基础搭建基于知识图谱的电影问答系统一、项目准备二、项目数据三、训练问题分类器四、准备问答模板五、搭建webapp六、问题预处理一、项目准备 首先需要一款python编译器,本人选用的是PyCharm,搭建好Python环境;安装第三方依赖库&#xff…

【Hack The Box】linux练习-- Delivery

HTB 学习笔记 【Hack The Box】linux练习-- Delivery 🔥系列专栏:Hack The Box 🎉欢迎关注🔎点赞👍收藏⭐️留言📝 📆首发时间:🌴2022年11月17日🌴 &#x1…

黄佳《零基础学机器学习》chap1笔记

黄佳 《零基础学机器学习》 chap1笔记 这本书实在是让我眼前一亮!!! 感觉写的真的太棒了! 文章目录黄佳 《零基础学机器学习》 chap1笔记第1课 机器学习快速上手路径—— 唯有实战1.1 机器学习族谱1.2 云环境入门实践:…

ERD Online 4.0.4 元数据在线建模(免费、私有部署)

❝ fix(erd): 修改表名、模块名自定义提示fix(erd): 支持自定义表名显示格式fix(erd): 升级ant到5.0.1版本fix(erd): 修复PDMan导入类型列为空fix(erd): 增加类型列宽度,避免类型显示不全fix(erd): 修复表设计报undefine异常fix(erd): 修复版本比对,出现…

二分搜索算法框架解析

文章目录 一、寻找一个数(基本的二分搜索)二、寻找左侧边界的二分搜索三、寻找右侧边界的二分查找总结 一、寻找一个数(基本的二分搜索) 这个场景是最简单的,可能也是大家最熟悉的,即搜索一个数&#xf…

2023年天津财经大学珠江学院专升本经济学专业课考试大纲

天津财经大学珠江学院2023年高职升本科专业课考试《经济学》考试大纲一、本大纲系天津财经大学珠江学院2023年高职升本科《经济学》课程考试大纲。所列考试范围出自郑健壮、王培才主编的教材《经济学基础(第二版)》,清华大学出版社&#xff0…

win10通过Docker搭建LNMP环境全流程

win10通过Docker搭建LNMP环境全流程 下载安装docker desktop 由于博主环境已经安装好了,一些异常设置,暂且略过 根据官方教程下载docker desktop执行文件.exe 注意尽量不要把docker安装到C盘,除非你的C盘很大,具体可以参考文章 …

初识 Spring 框架

文章目录一、Spring 介绍二、Spring 下载安装三、编写入门程序1.项目文件构架2.引入相关依赖3.创建实体类4.Spring 配置文件5.编写测试类四、控制反转与依赖注入1.控制反转概念2.依赖注入概念3.依赖注入的类型4.依赖注入的应用一、Spring 介绍 Spring 是由 Rod Johnson 组织和…

计算机毕设题目设计与实现(论文+源码)_kaic

毕业设计(论文)题目 高校图书馆座位预约选座微信小程序设计与实现 基于防火墙的访问控制系统的设计与实现 基于区块链的农产品追溯系统设计与实现 学生公寓楼改造布线系统规划与设计 智能家居网络设计与实现“互联网”农村精准扶贫共享平台的设计与实现“智慧健康少儿成长平台”…

Linux内核——门相关入门知识

为什么20位的寻址可以达到1MB? 🔒 点击查看答案 🔒 拆分如下的段描述符: 0000000000000000 00cf9b000000ffff 00cf93000000ffff 00cffb000000ffff 00cff3000000ffff 80008b04200020ab ffc093dff0000001 0040f30000000fff 0000f20…

TypeScript开启

TypeScript是什么? typescript是以JavaScript为基础构建的语言,是一个Javascript的超集,可以在任何支持JavaScript的平台中执行,typescript扩展了JavaScript,并添加了类型。 注意:ts不能被js直接解析执行&…

MySQL的join你真的了解吗!!!

1.测试用例数据库信息 本文章采用的数据库结构,以及MySQL版本:5.7 t1 表,有一个主键id,字段a,字段b。 (此表建立了一个索引a) 数据大约1000条 t2 表,有一个主键id,字段…

C++标准库分析总结(十一)——<适配器>

目录 1 适配器简介 2 适配器使用分类 2.1 容器适配器 2.2 函数适配器 2.2.1 常见的函数适配器 2.2.2 bind2nd 2.2.3 not1 2.2.4 新型适配器bind 2.3 迭代器适配器 2.3.1 reverse_iterator 2.3.2 insert_iterator 2.4 X适配器 2.4.1 ostream_iterator 2.4.2 istre…

BUUCTF-babyheap_0ctf_2017

checksec 标准堆菜单 IDA Allocate void __fastcall sub_D48(__int64 a1) {int i; // [rsp10h] [rbp-10h]int v2; // [rsp14h] [rbp-Ch]void *v3; // [rsp18h] [rbp-8h]for ( i 0; i < 15; i ){if ( !*(_DWORD *)(24LL * i a1) ){printf("Size: ");v2 sub_1…

【云原生】无VIP稳定性和可扩展性更强的k8s高可用方案讲解与实战操作

文章目录一、概述二、架构三、开始部署1&#xff09;节点信息2&#xff09;前期准备&#xff08;所有节点&#xff09;1、配置hosts2、配置互信3、时间同步4、关闭防火墙5、禁用SELinux6、关闭swap7、设置bridge-nf-call-iptables3&#xff09;安装容器docker&#xff08;所有节…

C++标准库分析总结(十)——<仿函数/函数对象>

目录 1.functor仿函数简介 2 仿函数的分类 3 仿函数使用 4 仿函数可适配的条件 1.functor仿函数简介 仿函数是STL中最简单的部分&#xff0c;存在的本质就是为STL算法部分服务的&#xff0c;一般不单独使用。仿函数&#xff08;functors&#xff09;又称为函数对象&…

Windows 命令行cmd.exe简单介绍

介绍&#xff1a; 在windows系统中&#xff0c;Windows命令shell&#xff08;cmd.exe&#xff09;,在 SystemRoot/System32目录下。 启动命令行&#xff0c;在"开始"——>"搜索"中输入cmd&#xff0c;此时命令行展示当前工作目录&#xff0c;默认为/u…

JS(第二十四课)JS高级Es6语法

ECMAScript 6_百度百科 (baidu.com) 第一部分:百度简介 ECMAScript 6&#xff08;简称ES6&#xff09;是于2015年6月正式发布的JavaScript语言的标准&#xff0c;正式名为ECMAScript 2015&#xff08;ES2015&#xff09;。它的目标是使得JavaScript语言可以用来编写复杂的大型…