首页 > 数据库 >oracle制作docker镜像

oracle制作docker镜像

时间:2024-09-12 16:47:31浏览次数:11  
标签:oracle19c master oracle 镜像 docker root dockerfiles

1.下载官方的 dockerfile 构建包
下载地址:
https://github.com/oracle/docker-images

 

2.下载oracle安装包
我这里下载的是19C
LINUX.X64_193000_db_home.zip

 

最后下载的2个文件如下:

[root@master soft]# ls -lrt
total 2991400
-rw-r--r-- 1 root root 3059705302 Sep 13  2020 LINUX.X64_193000_db_home.zip
-rw-r--r-- 1 root root    3482131 Sep 12 09:08 docker-images-main.zip

 

3.解压docker-images-main.zip
[root@master soft]# unzip docker-images-main.zip
进入 ./docker-images-main/OracleDatabase/SingleInstance/dockerfiles

[root@master soft]# cd ./docker-images-main/OracleDatabase/SingleInstance/dockerfiles
[root@master dockerfiles]# ls
11.2.0.2 12.1.0.2 12.2.0.1 18.3.0 18.4.0 19.3.0 21.3.0 23.5.0 buildContainerImage.sh
[root@master dockerfiles]# ls -1
11.2.0.2
12.1.0.2
12.2.0.1
18.3.0
18.4.0
19.3.0
21.3.0
23.5.0
buildContainerImage.sh

根据需要进入对应的版本目录(本例 19.3.0)
[root@master dockerfiles]# cd 19.3.0
将下载的 Oracle zip 附件拷贝到该目录中

[root@master 19.3.0]# ls -1
checkDBStatus.sh
checkSpace.sh
Checksum.ee
Checksum.ee.arm64
Checksum.se2
configTcps.sh
createDB.sh
createObserver.sh
dbca.rsp.tmpl
db_inst.rsp
Dockerfile
installDBBinaries.sh
LINUX.X64_193000_db_home.zip
relinkOracleBinary.sh
runOracle.sh
runUserScripts.sh
setPassword.sh
setupLinuxEnv.sh
startDB.sh

 

4.构建DOCKER镜像
[root@master dockerfiles]# cd /soft/docker-images-main/OracleDatabase/SingleInstance/dockerfiles
[root@master dockerfiles]#./buildContainerImage.sh -v 19.3.0 -e

 

我这里提示如下错误,提示空间不足
 > [base 4/4] RUN chmod ug+x /opt/install/*.sh &&     sync &&     /opt/install/checkSpace.sh &&     /opt/install/setupLinuxEnv.sh &&     rm -rf /opt/install:                                                                             
0.551 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!               
0.551 checkSpace.sh: ERROR - There is not enough space available in the container.
0.551 checkSpace.sh: The container needs at least 18 GB, but only 12 GB are available.
0.551 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
------

 

磁盘扩容后继续执行如上命令,完成以后使用 docker images 可以看到已经有成功构建的 Oracle 19c镜像了,同时构建了Oracle Linux 7的基础镜像,如下:

[root@master dockerfiles]# docker images
REPOSITORY                                         TAG              IMAGE ID       CREATED         SIZE
oracle/database                                    19.3.0-ee        f9f2615a4afc   2 minutes ago   6.54GB

 

####################运行 Oracle 容器##########################

1.创建oracle用户和组
注意oracle用户的id 和组id必须跟docker镜像里的一致
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -u 54321 -g oinstall -G dba,oper -d /home/oracle -s /bin/bash -c "Oracle Software Owner" oracle
echo "oracle" | passwd --stdin oracle

容器里的ID
[root@master docker]# docker exec -it oracle19c /bin/bash

bash-4.2$ id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)

 

2.切换到 oracle 用户,然后创建数据目录
su - oracle
mkdir -p /home/oracle/oradata/oracle19c
chown oracle:oinstall /home/oracle/oradata/oracle19c

 

3.启动 oracle 容器
su - root
[root@master dockerfiles]#
docker run -itd --name oracle19c -p 1521:1521 -p 5500:5500 -v /home/oracle/oradata/oracle19c:/opt/oracle/oradata oracle/database:19.3.0-ee

 

4.密码
容器启动后,通过 docker logs -f oracle19c 查看日志,能看到自动生成的SYS等用户的密码,如下示例
docker exec -it oracle19c /bin/bash

修改密码为oracle
[root@master dockerfiles]# docker exec oracle19c ./setPassword.sh oralce

5.登录验证
默认以oracle账号登录
docker exec -it oracle19c /bin/bash

以root账号登录
docker exec -it --user root oracle19c bash
可以安装which yum vi
yum install which
yum install yum
yum install vi

6.自定义sid
docker run -itd --name oracle19c \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_SID=ORCL \
-e ORACLE_PDB=MYPDB1 \
-v /home/oracle/oradata/oracle19c:/opt/oracle/oradata \
oracle/database:19.3.0-ee

 

标签:oracle19c,master,oracle,镜像,docker,root,dockerfiles
From: https://www.cnblogs.com/hxlasky/p/18410567

相关文章

  • idea+docker远程一键部署springboot
     一、配置本机和服务器通过ssh连接 ssh-keygen-trsa会在 ~/.ssh/id_rsa.pub文件中生成公钥,把改文件的内容复制到服务器的~/.ssh/authorized_keys文件中,然后在本机使用 sshroot@<服务器IP>进行连接 二、配置idea通过ssh远程连接服务器 通过Keypair进行连接......
  • 云上攻防:云原生篇&Docker容器逃逸
    什么是DockerDocker简而言之就是一个容器技术,类似于VM虚拟机,别人环境封装好打包成一个镜像,使用docker技术就能快速把这个镜像环境还原出来。Docker容器与虚拟机类似,但二者在原理上不同,容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用服务器......
  • 【Linux】2.Ubuntu配置清华镜像源
    Ubuntu配置清华镜像源1.修改配置文件Ubuntu配置清华镜像源的教程如下(配置方法的最新变动可以去清华镜像站查看:https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/):对于Ubuntu24.04及其以后的版本,Ubuntu的软件源配置文件的路径为/etc/apt/sources.list.d/ubuntu.sources......
  • Docker脚本一键打包java镜像运行备份多端口共存
    效果./docker_build.sh8081后会创建一个新的8081端口容器,并创建一个8081镜像,并备份之前的镜像可以启用多个端口 结构  DockerFile#FROM#基础镜像,当前新镜像是基于哪个镜像的#MAINTAINER#镜像维护者的姓名混合邮箱地址#RUN#容器构建时需......
  • idea中的docker部署配置
    注意:确认本地已安装docker环境第一步:idea安装docker插件:设置-插件-docker第二步:配置Dockerfile文件FROMharbor.chint.com/wz-build-env-public/openjdk:17ASbase#项目的端口,内部服务端口EXPOSE8808#切换到容器内部的/workdir目录WORKDIR/workdir#添加要运行......
  • Dockerfile 实战指南:轻松掌握容器化部署!
    Dockerfile非常重要,在实际工作中,使用Docker绝不是敲敲一些常用命令即可。Dockerfile几乎贯穿微服务的全部内容,务必掌握。不要求能从头开始编写Dockerfile,至少如果有个Dockerfile的模板,我们能够修改。‍概述Dockerfile是用来构建Docker镜像的文本文件,是由一条条构建......
  • Oracle 19c OCP 认证考试 082 题库(第20题)- 2024年修正版
    【优技教育】Oracle19cOCP082题库(Q20题)-2024年修正版考试科目:1Z0-082考试题量:90通过分数:60%考试时间:150min本文为(CUUG原创)整理并解析,转发请注明出处,禁止抄袭及未经注明出处的转载。原文地址:http://www.cuug.com/index.php?s=/home/article/detail/id/3401.html第......
  • 828华为云征文 | 云服务器Flexus X实例,镜像切换与服务器压力测试
    828华为云征文|云服务器FlexusX实例,镜像切换与服务器压力测试云服务器FlexusX压力测试1、购买华为云FlexusX实例Flexus云服务器X实例-华为云(huaweicloud.com)2、xshell远程连接服务器3、安装压力测试工具sysbench使用sysbench进行CPU、内存、I/O压力......
  • Docker Desktop 启动失败:Docker failed to initialize
    docker启动报错解决方案:删除 C:\Users\Administrator\AppData\Roaming\Docker文件夹文件夹删除后,会弹出下面的窗口,点击“OK”:点击“OK”后会可能会弹出下面的窗口,点击“Start”点击“Start”后,会进入DockerDesktop的启动向导窗口,依次点击“Start”->“NextStep” -......
  • Docker 可视化工具
    1.PortainerPortainer是一个可视化的容器镜像的图形管理工具,利用Portainer可以轻松构建,管理和维护Docker环境。而且完全免费,基于容器化的安装方式,方便高效部署。官方站点:https://www.portainer.io/ 2.DockerUI DockerUI是一款开源的、强大的、轻量级的Docker管理工具......