当前位置: 首页 > news >正文

【Docker】如何在内网快速搭建docker并安装Oracle11g

文章目录

    • 前言
    • 一、下载docker静态二进制存档
    • 二、将解压完的二进制文件移到可执行文件目录下
    • 三、配置docker.service
    • 四、启动dockerd服务
    • 五、在有网络的环境生成Oracle11g镜像并导入
      • 5.1下载镜像Oracle11g镜像
      • 5.2将镜像打包
      • 5.3将镜像导入
    • 六、docker安装oracle11g
      • 6.1启动镜像
      • 6.2宿主机创建文件夹
      • 6.3拷贝数据库文件至宿主机
      • 6.4停止和删除容器
      • 6.5启动docker容器(映射数据文件)
      • 6.6执行并完成基础设置
        • 6.6.1 进入容器
        • 6.6.2加载环境变量
        • 6.6.3登录
        • 6.6.4修改默认用户密码
        • 6.6.5创建用户并指定表空间,授权
      • 6.7 修改SID
        • 6.7.1关闭数据库
        • 6.7.2修改环境变量
    • 总结


前言

docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现,这里程序运行的依赖也就是容器就好比集装箱,容器所处的操作系统环境就好比货船或港口,程序的表现只和集装箱有关系(容器),和集装箱放在哪个货船或者哪个港口(操作系统)没有关系。
在这里插入图片描述

一、下载docker静态二进制存档

要根据硬件平台下载以免造成不兼容
https://download.docker.com/
根据自己的需求安装对应的版本(我这里选择的是docker-20.10.7)
https://download.docker.com/linux/static/stable/x86_64/docker-20.10.7.tgz

将下载好的的包上传到对应服务器
并解压 tar -zxvf docker-20.10.7.tgz
解压完的文件为docker

[root@v-ct-jy-czzp-app-160 opt]# tar -zxvf docker-20.10.7.tgz 

在这里插入图片描述

二、将解压完的二进制文件移到可执行文件目录下

在这里插入图片描述

[root@v-ct-jy-czzp-app-160 opt]# mv docker/* /usr/bin/

在这里插入图片描述

三、配置docker.service

[root@v-ct-jy-czzp-app-160 opt]# vim /usr/lib/systemd/system/docker.service

将以下内容填入

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target[Service]
Type=notify
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=infinity
LimitNPROC=infinity
TimeoutStartSec=0
Delegate=yes
KillMode=process
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s[Install]
WantedBy=multi-user.target

四、启动dockerd服务

[root@v-ct-jy-czzp-app-160 opt]# systemctl daemon-reload
[root@v-ct-jy-czzp-app-160 opt]# systemctl start docker.service
[root@v-ct-jy-czzp-app-160 opt]# docker info

在这里插入图片描述
将docker设置为开机自启动

[root@v-ct-jy-czzp-app-160 opt]# systemctl enable docker

在这里插入图片描述

五、在有网络的环境生成Oracle11g镜像并导入

5.1下载镜像Oracle11g镜像

注意最好使用的服务器要和内网机器系统兼容否则镜像导入时会报错

[root@summer summer]# docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
Using default tag: latest
latest: Pulling from helowin/oracle_11g
ed5542b8e0e1: Pull complete 
a3ed95caeb02: Pull complete 
1e8f80d0799e: Pull complete 
Digest: sha256:4c12b98372dfcbaafcd9564a37c8d91456090a5c6fb07a4ec18270c9d9ef9726
Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g:latest

5.2将镜像打包

[root@summer summer]#docker save nginx:latest > oracle11g.tar

5.3将镜像导入

[root@v-ct-jy-czzp-app-160 opt]# docker load -i oracle11g.tar 

在这里插入图片描述

六、docker安装oracle11g

6.1启动镜像

[root@v-ct-jy-czzp-oth-02 ~]# docker run -d --name oracle -p 1521:1521 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

在这里插入图片描述

6.2宿主机创建文件夹

[root@v-ct-jy-czzp-oth-02 ~]# mkdir -p /opt/oracle/
[root@v-ct-jy-czzp-oth-02 ~]# mkdir -p /opt/oracle/flash_recovery_area/

在这里插入图片描述

6.3拷贝数据库文件至宿主机

[root@v-ct-jy-czzp-oth-02 ~]# mkdir -p /opt/oracle/
[root@v-ct-jy-czzp-oth-02 ~]# mkdir -p /opt/oracle/flash_recovery_area/
[root@v-ct-jy-czzp-oth-02 ~]# docker ps -a
CONTAINER ID   IMAGE                                                  COMMAND                  CREATED          STATUS          PORTS                                       NAMES
149b2d1a4d64   registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   "/bin/sh -c '/home/o…"   26 seconds ago   Up 20 seconds   0.0.0.0:1521->1521/tcp, :::1521->1521/tcp   oracle
[root@v-ct-jy-czzp-oth-02 ~]# docker cp 149b2d1a4d64:/home/oracle/app/oracle/oradata /opt/oracle/oradata
[root@v-ct-jy-czzp-oth-02 ~]# docker cp 149b2d1a4d64:/home/oracle/app/oracle/flash_recovery_area/helowin /opt/oracle/flash_recovery_area/helowin
[root@v-ct-jy-czzp-oth-02 ~]# chmod -R 777 /opt/oracle/

6.4停止和删除容器

[root@v-ct-jy-czzp-oth-02 ~]# docker stop 149b2d1a4d64
149b2d1a4d64
[root@v-ct-jy-czzp-oth-02 ~]# docker rm 149b2d1a4d64
149b2d1a4d64

在这里插入图片描述
在这里插入图片描述

6.5启动docker容器(映射数据文件)

[root@v-ct-jy-czzp-oth-02 ~]# docker run -d --name oracle_llg -p 1521:1521 --privileged=true -v /opt/oracle/oradata:/home/oracle/app/oracle/oradata -v /opt/oracle/flash_recovery_area/helowin:/home/oracle/app/oracle/flash_recovery_area/helowin registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

在这里插入图片描述

6.6执行并完成基础设置

6.6.1 进入容器

[root@v-ct-jy-czzp-oth-02 ~]# docker ps
CONTAINER ID   IMAGE                                                  COMMAND                  CREATED          STATUS          PORTS                                       NAMES
640d85e4800c   registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   "/bin/sh -c '/home/o…"   10 seconds ago   Up 10 seconds   0.0.0.0:1521->1521/tcp, :::1521->1521/tcp   oracle_llg
[root@v-ct-jy-czzp-oth-02 ~]# docker exec -it 640d85e4800c /bin/bash

在这里插入图片描述

6.6.2加载环境变量

[oracle@640d85e4800c /]$ source /home/oracle/.bash_profile
[oracle@640d85e4800c /]$ su root 
Password: 
#密码:helowin
[root@640d85e4800c /]# vi /etc/profile
#在末尾添加export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2export ORACLE_SID=helowinexport PATH=$ORACLE_HOME/bin:$PATH
#刷新配置
[root@640d85e4800c /]# source /etc/profile
[root@640d85e4800c /]# su oracle

在这里插入图片描述

6.6.3登录

[oracle@47badc5bb7c4 /]$ sqlplus /nologSQL*Plus: Release 11.2.0.1.0 Production on Fri Mar 3 19:42:31 2023Copyright (c) 1982, 2009, Oracle.  All rights reserved.SQL> connect /as sysdba
Connected.

6.6.4修改默认用户密码

SQL> alter user system identified by system;User altered.SQL> alter user sys identified by sys;User altered.SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;Profile altered.SQL>

6.6.5创建用户并指定表空间,授权

SQL> create user summer IDENTIFIED BY 123456 default tablespace test;User created.SQL> grant connect,resource,dba to summer;Grant succeeded.SQL>
名称参数
IP宿主机ip
端口1521
SIDhelowin
账号summer
密码123456

在这里插入图片描述

6.7 修改SID

原来SID为helowin,先需要修改为orcl

6.7.1关闭数据库

[oracle@47badc5bb7c4 /]$ sqlplus /nologSQL*Plus: Release 11.2.0.1.0 Production on Wed Nov 4 01:00:41 2020Copyright (c) 1982, 2009, Oracle.  All rights reserved.SQL> connect /as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>

6.7.2修改环境变量

[oracle@47badc5bb7c4 /]$ vi /home/oracle/.bash_profile
#更改
ORACLE_SID=orcl;export ORACLE_SID
[oracle@47badc5bb7c4 /]$ cat /etc/oratab
orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_2:Y
[oracle@47badc5bb7c4 /]$ cd $ORACLE_HOME/dbs
[oracle@47badc5bb7c4 dbs]$ ll
total 32
-rw-r-----. 1 oracle oinstall 3584 Jan  4  2016 123.sp
-rw-rw----. 1 oracle oinstall 1544 Nov  4 01:01 hc_helowin.dat
-rw-r--r--. 1 oracle oinstall 2851 May 16  2009 init.ora
-rw-r--r--. 1 oracle oinstall 1067 Jan  4  2016 inithelowin.ora
-rw-r-----. 1 oracle oinstall   24 Aug 23  2014 lkHELOWIN
-rw-r-----. 1 oracle oinstall   24 Dec 29  2015 lkORCL
-rw-r-----. 1 oracle oinstall 2048 Nov  4 00:33 orapwhelowin
-rw-r-----. 1 oracle oinstall 3584 Nov  4 00:25 spfilehelowin.ora
[oracle@39721ba8b1dd dbs]$ mv hc_helowin.dat hc_orcl.dat 
[oracle@39721ba8b1dd dbs]$ mv orapwhelowin orapworcl    
[oracle@39721ba8b1dd dbs]$ mv spfilehelowin.ora spfileorcl.ora 
[oracle@39721ba8b1dd dbs]$ mv lkHELOWIN lkORCL
[oracle@39721ba8b1dd dbs]$ exit
exit
[root@47badc5bb7c4 /]# exit
exit
[oracle@47badc5bb7c4 /]$ exit
exit
[root@summer oracle]# docker ps
CONTAINER ID        IMAGE                                                  COMMAND                  CREATED             STATUS              PORTS                    NAMES
47badc5bb7c4        registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   "/bin/sh -c '/home/o…"   49 minutes ago      Up 49 minutes       0.0.0.0:1521->1521/tcp   oracle_llg
[root@summer oracle]# docker restart 39721ba8b1dd
47badc5bb7c4

在这里插入图片描述

总结

就此如何快速在内网环境搭建一个Oracle数据库搭建完成,感谢支持

相关文章:

【Docker】如何在内网快速搭建docker并安装Oracle11g

文章目录前言一、下载docker静态二进制存档二、将解压完的二进制文件移到可执行文件目录下三、配置docker.service四、启动dockerd服务五、在有网络的环境生成Oracle11g镜像并导入5.1下载镜像Oracle11g镜像5.2将镜像打包5.3将镜像导入六、docker安装oracle11g6.1启动镜像6.2宿主…...

为啥用 时序数据库 TSDB

前言 其实我之前是不太了解时序数据库以及它相关的机制的,只是大概知晓它的用途。但因为公司的业务需求,我意外参与并主导了公司内部开源时序数据库influxdb的引擎改造,所以我也就顺理成章的成为时序数据库“从业者”。 造飞机的人需要时刻…...

Linux命令·cp

cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一。一般情况下,shell会设置一个别名,在命令行下复制文件时,如果目标文件已经存在,就会询问是否覆盖,不管你是否使用-i参数。但是如果是在shell脚本…...

SAP GUI快捷键

快速调整字体大小 Ctrl + 鼠标滚轮 剪切一行 Ctrl Shift X 删除一行 Ctrl Shift L 复制一行 Ctrl Shift T 转成小写 Ctrl L 转成大写 Ctrl U 大小写相互转换 Ctrl K 取消 Ctrl Z 重做 Ctrl Y 原地复制一行 Ctrl D 一次性注释多行 …...

【Java】序列化与反序列化

1. 对象的序列化机制是什么? 对象序列化机制允许把内存中的Java对象转化成语平台无关的二进制流,从而允许把这种二进制流持久的保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。 当其他程序获取了这种二进制流,就可…...

面向对象的使用

目录1. 类和对象的概念类对象类和对象的关系2. 定义简单的类(只包含方法)3. 创建对象4. self参数5. 类的初始化方法在初始化方法内部定义属性在初始化方法内部接收参数定义属性6. 类的内置方法使用__del__ 方法__str__ 方法7. 身份运算符is 与 区别:8. …...

LPDDR4x 的 学习总结(3) - SDRAM基本功能

上一节,我们重点介绍了array的存储结构。 本节介绍array周边的电路,对DDR的基本读写操作的相关功能模块的理解。 即通过哪些模块可以实现对ddr的基本读写。最简化的方式是把存储操作理解为行列选择,拆分为横竖两个纬度,最终实现对arrary进行读写。横向…...

设计模式(三)--适配器模式(Adapter Pattern)

将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作.比如我们日常开发中使用到的slf4j就使用了适配器模式,slf4j提供了一系列打日志的api,底层调用的是log4j或者logback来打日志,而作为调用者,不需…...

Web服务器基础介绍与Apache的简单介绍(LAMP架构与搭建论坛)

目录 Web服务器基础介绍 一.HTML是什么? 二.静态网页和动态网页 1.静态网页 2.动态网页 3.动态网页语言 三.HTTP协议 1.HTTP协议是什么? 2.HTTP方法 3.HTTP状态码 4.HTTP请求流程分析 4.1 请求报文 4.2 响应报文 Apache的简单介绍 一.Apa…...

Linux 进程:exec函数簇

目录(1)execl(2)execlp(3)execle(4)execv(5)execvp(6)execve在进程控制中提到,子进程的最大价值在于程序替换,…...

极简RSS订阅器Miniflux

什么是 Miniflux ? Miniflux 是一个极简主义的 RSS 阅读器。它简单、快速、轻便且非常易于使用。Miniflux 是静态编译的单个二进制文件,没有使用任何复杂的框架,也没有外部依赖,简单、快速、轻巧且超级容易安装。支持 Atom、RSS 1…...

网络通信快速入门

🏡个人主页 : 守夜人st 🚀系列专栏:Java …持续更新中敬请关注… 🙉博主简介:软件工程专业,在校学生,写博客是为了总结回顾一些所学知识点 目录网络编程实现网络编程的三要素&#x…...

【阅读文档】Vue.js 2.0 之教程文档

系列文章目录 提示:阅读本章之前,请先阅读目录 文章目录系列文章目录前言兼容性Devtools开发版和生产版安装Vue-cli编译器Vue.js 是什么最基本的Vuev-bind 指令split 和 reverse 搭配v-model 双向绑定vue-component 定义组件v-bindObject.freeze箭头函数…...

Docker【基本使用】

1:启动Docker1.1:操作systemctl start docker.service1.2:常见问题【第一步】启动docker,提示启动失败,查询运行状态systemctl start docker.service【第二步】查询docker运行状态,提示不支持SELinux【第三…...

算法leetcode|39. 组合总和(rust重拳出击)

文章目录39. 组合总和:样例 1:样例 2:样例 3:提示:分析:题解:rustgoccpythonjava39. 组合总和: 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找…...

JavaSE学习笔记总结day18

今日内容 零、 复习昨日 一、作业 二、进程与线程 三、创建线程 四、线程的API 五、线程状态 六、线程同步 零、 复习昨日 晨考 一、作业 见答案 二、进程与线程[了解] 一个进程就是一个应用程序,进程包含线程 一个进程至少包含一个线程,大部分都是有多条线程在执行任务(多线…...

HybridFusion: LiDAR和视觉交叉源点云融合

一、基本信息 研究方向: 大场景点云配准 HybridFusion: 它可以在户外大型场景中从不同视角记录交叉源密集点云。 团队链接:http://www.adv-ci.com 视频链接: https://www.bilibili.com/video/BV1vM41147yD/?spm_id_from333.337.sear…...

走进JVM

JVM的位置 在操作系统之上,可以想象成一个软件,Java程序都运行在上面 JVM结构图 JVM调优的位置 99%的调优在堆中,极少数在方法区中 很多第三方插件都是在执行引擎那块地方做出修改而来,比如Lombook在程序运行时动态生成get/s…...

C语言-基础了解-15-C函数指针与回调函数

C函数指针与回调函数 一、函数指针 函数指针是指向函数的指针变量。 通常我们说的指针变量是指向一个整型、字符型或数组等变量,而函数指针是指向函数。 函数指针可以像一般函数一样,用于调用函数、传递参数。 函数指针变量的声明: type…...

react和vue在响应式上的不同理解

vue和react的区别总是被提及,关于这个问题最近也有了自己的想法。我认为它们之间最大的区别是对于响应数据变化的实现方式不同。 vue实现响应的方法是,首先收集依赖这个数据的副作用(视图更新、计算属性等),当数据修改…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:

根据万维钢精英日课6的内容&#xff0c;使用AI&#xff08;2025&#xff09;可以参考以下方法&#xff1a; 四个洞见 模型已经比人聪明&#xff1a;以ChatGPT o3为代表的AI非常强大&#xff0c;能运用高级理论解释道理、引用最新学术论文&#xff0c;生成对顶尖科学家都有用的…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...

华为OD机试-最短木板长度-二分法(A卷,100分)

此题是一个最大化最小值的典型例题&#xff0c; 因为搜索范围是有界的&#xff0c;上界最大木板长度补充的全部木料长度&#xff0c;下界最小木板长度&#xff1b; 即left0,right10^6; 我们可以设置一个候选值x(mid)&#xff0c;将木板的长度全部都补充到x&#xff0c;如果成功…...

从物理机到云原生:全面解析计算虚拟化技术的演进与应用

前言&#xff1a;我的虚拟化技术探索之旅 我最早接触"虚拟机"的概念是从Java开始的——JVM&#xff08;Java Virtual Machine&#xff09;让"一次编写&#xff0c;到处运行"成为可能。这个软件层面的虚拟化让我着迷&#xff0c;但直到后来接触VMware和Doc…...

《Offer来了:Java面试核心知识点精讲》大纲

文章目录 一、《Offer来了:Java面试核心知识点精讲》的典型大纲框架Java基础并发编程JVM原理数据库与缓存分布式架构系统设计二、《Offer来了:Java面试核心知识点精讲(原理篇)》技术文章大纲核心主题:Java基础原理与面试高频考点Java虚拟机(JVM)原理Java并发编程原理Jav…...