• 技术文章 >运维 >Docker

    docker能安装oracle吗

    长期闲置长期闲置2022-07-08 16:07:42原创260

    docker能安装oracle。安装方法:1、拉取Oracle官方镜像,可以利用“docker images”查看镜像;2、启动容器后利用“docker exec -it oracle11g bash”进入容器,并且编辑环境变量;3、利用“sqlplus /nolog”进入oracle命令行即可。

    本教程操作环境:linux7.3系统、docker19.03版、Dell G3电脑。

    docker能安装oracle吗

    可以用docker来部署oracle,而且好处很多。既能减少安装的时间,又能够快速进行部署。

    使用docker来部署的好处如下:

    (1)简化配置,构建一次后打包后就可以用作测试环境,也可以用作生产环境或与预生产环境,可以省去很多测试环节。比如一台服务器可以进行测试多个版本的测试,不用等待。

    (2)可以解决开发人员部署环境的困难,好比如一个刚来的新同事安装环境可能需要半天时间,但要是直接运行一个已经配好的容器的话就方便多了。

    (3)应用隔离,服务器整合,一个服务器可以用docker部署多套业务,并且隔离性很高(除了虚拟机)。

    (4)对于开发来说部署好之后到处运行便于开发调试。

    (5)可以减少资源的利用,和虚拟机比较省去了很多不必要的资源,损失的隔离性其他的优点足以弥补。

    (6)对于运维来说,可以快速的进行扩容,减少原利用率

    (7)每个小的服务都可以进行集群,docker对资源的利用比较小,可以在一台服务器启动多台,相比其他产品对服务器的I/O使用上要多。

    (8)可以多平台部署

    示例如下:

    在Linux中安装oracle非常麻烦,相信每个人也会遇到各种坑。为了一次装好,也方便将来直接可以导出镜像在各平台移植使用,所以选择用docker安装

    拉取镜像

    在 DockerHub 上搜索 Oracle 可以找到 Oracle 的官方镜像,地址:https://hub.docker.com/
    在这里插入图片描述

    注意,这里使用 docker pull oraclelinux 命令,是拉取不到镜像的,因为它没有 latest 标签。因此,只能手动指定它的版本号
    例如 docker pull oraclelinux
    在这里插入图片描述
    使用 官方镜像 下载速度非常慢,因此,我们可以使用阿里镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

    在 dockerHub 上可以搜到 (第二个),可以参考这个配置
    在这里插入图片描述在这里插入图片描述使用 docker images 查看镜像,确认已经下载完成
    在这里插入图片描述

    启动容器

    1. 默认启动容器的方式
      docker run -d -it -p 1521:1521 --name oracle11g --restart=always registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
    2. 持久化启动的方式
      docker run -d -it -p 1521:1521 --name oracle --restart=always --mount source=oracle_vol,target=/home/oracle/app/oracle/oradata registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

    查看启动的线程 netstat -tulnp
    在这里插入图片描述
    查看运行状态 docker ps -a
    在这里插入图片描述

    容器内环境配置

    进入容器 docker exec -it oracle11g bash
    在这里插入图片描述
    切换到 root 用户 su root,密码为 helowin
    在这里插入图片描述
    docker容器配置环境变量不是在 /etc/profile 中,容器启动不会走这个文件。
    可以将环境变量的配置设置在 /home/oracle/.bashrc 文件下,这样可以省略掉软连接的创建 ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
    在这里插入图片描述
    编辑环境变量 vi /home/oracle/.bashrc,在文件最后加入以下命令

    export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
    export ORACLE_SID=helowin
    export PATH=$ORACLE_HOME/bin:$PATH

    wq 保存并退出。然后使用 source /home/oracle/.bashrc 刷新环境变量,并使之生效

    进入 oracle 命令行

    使用 sqlplus /nolog 进入oracle命令行
    在这里插入图片描述
    使用 “操作系统认证” 的方式,登录oracle conn / as sysdba
    如果直接使用默认的 root 用户登录,会报登录失败。这里必须使用 su - oracle 命令,将当前用户切换到 oracle,然后在执行登录命令
    在这里插入图片描述

    ORA-12514, TNS:listener does not currently know of service requested in connect descriptor

    在这里插入图片描述这个错误是由于数据库名用错了

    su - oracle
    sqlplus /nolog
    conn / as sysdba
    select instance_name from v$instance;
    show user;

    使用上述命令查出来的,就是所有可用的 “数据库名” 和 “用户名”
    在这里插入图片描述

    阿里的这个镜像,所有的密码都是统一的 helowin

    system用户具有DBA权限,但是没有SYSDBA权限。平常一般用该帐号管理数据库。
    而sys用户是Oracle数据库中权限最高的帐号,具有“SYSDBA”和“SYSOPER”权限,一般不允许从外部登录

    在这里插入图片描述

    配置防火墙

    防火墙要允许 1521 端口,外部的数据库管理工具才能连的上

    # 打开防火墙
    systemctl start firewalld
    # 查询端口状态
    firewall-cmd --query-port=1521/tcp
    # 永久性开放端口
    firewall-cmd --permanent --zone=public --add-port=1521/tcp
    # 重启防火墙
    firewall-cmd --reload
    firewall-cmd --query-port=1521/tcp

    在这里插入图片描述

    推荐学习:《docker视频教程

    以上就是docker能安装oracle吗的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Docker
    上一篇:docker exec是什么意思 下一篇:docker集群是什么意思
    20期PHP线上班

    相关文章推荐

    精选22门好课,价值3725元,开通VIP免费学习!• 使用docker需要root权限吗• windows7支持使用docker吗• docker无法解析域名怎么办• docker运行在物理机还是虚拟机上• 什么是docker微服务
    1/1

    PHP中文网