docker 镜像安装 oracle

简介

debian 中安装 docker,并且在 docker 环境下使用 oracle

docker 安装

https://docs.docker.com/engine/installation/#desktop
或者去 https://download.docker.com/linux/static/stable 网址里面下载,下载完了解压到 /usr/bin/ 下面(或者解压到其他地方,然后将解压路径添加到 PATH 里面)即可,在 ~/.zshrc 中添加

alias docker="sudo docker" # 不想每次都输入sudo,也不想切换到root用户
# alias dockerd="sudo docker" # 在非root下面执行dockerd &可能不会生效

注意

如果你的根目录所在的分区空间不是特别大的话,我并不建议解压到 /usr/bin/ 下面。可以解压到其他位置(docker_path),将 docker_path 添加到 PATH:

vi ~/.zshrc
# 或者打开
# vi ~/.bashrc
# 在~/.zshrc 或者~/.bashrc中添加下面语句
export $DOCKER_PATH="docker_path"
export $PATH=$PATH:$DOCKER_PATH

安装 启动 oracle

  1. 安装启动
    • 标准版安装

       dockerd &
       docker pull sath89/oracle-12c  # 12c
       docker pull sath89/oracle-xe-11g # 11g
       docker pull chameleon82/oracle-xe-10g # 10g
       docker run -h "oracle12c" --name "oracle12c" -d -p 49160:22 -p 49161:1521 -p 49162:8080 \
       sath89/oracle-12c
       docker run -h "oracle11g" --name "oracle11g" -d -p 49163:22 -p 49164:1521 -p 49165:8080 \
       sath89/oracle-xe-11g
       docker run -h "oracle10g" --name "oracle10g" -d -p 49166:22 -p 49167:1521 -p 49168:8080 \
       chameleon82/oracle-xe-10g
      
    • 企业版安装
      下载企业版 oracle,克隆项目 https://github.com/oracle/docker-images 到本地,将 oracle 拷贝到在 OracleDatabase/dockerfiles/<version> 下面,执行

      sudo ./buildDockerImage.sh -v 12.2.0.1 -e
      docker run -h "oracle12c-ee" --name "oracle12c-ee" -d -p 49170:22 -p 49171:1521 \
      -p 49172:5500 -p 49173:8080 -e ORACLE_SID=orcl -e ORACLE_PDB=pdb -e ORACLE_PWD=zeekling \
      oracle/database:12.2.0.1-ee
      
      • 重新打开 oracle 容器
         docker restart oracle12c
      
      • tip docker run 是 new 一个新的容器出来,名字是不能重复的
  2. 查看 oracle 启动日志
 docker logs -f oracle12c
  1. 进入镜像的 bash
 docker exec -it oracle12c /bin/bash

默认登进去是 root 用户,oracle 安装在 oracle 用户下面,所以进去是要切换用户的;切换用户时,默认不需要密码。
4. 查看 docker 容器 ip

 docker inspect oracle12c  | grep IPAddress
  1. 连接数据库
    切换到 oracle 用户,在 ~/.bashrc 里面添加
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/xe
export PATH=$PATH:$ORACLE_HOME/bin
export $ORACLE_SID=xe

这样就不用切换到 oraclebin 目录下面执行 sqlplus / as sysdba

  1. 图形化界面安装和启动
    root 用户下执行
curl -s https://shipyard-project.com/deploy | bash -s

在浏览器中打开 http://127.0.0.1:8080,输入用户名/密码:admin/shipyard
再次启动 docker 时,图形界面会随着容器启动,不用用命令启动
可以将 https://shipyard-project.com/deploy 中的脚本保存下来,下次安装的时候使用

curl https://shipyard-project.com/deploy > /usr/bin/dockerdeploy
# 下次执行下面语句
dockerd &
su root
dockerdeploy
  1. 安装 oracle 客户端
    http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
    下载 oracle 客户端,建议下载 rpm 包,在 debian 系列 linux 上可以转成 deb 包,下载下面几个包就行了
-rw-r--r-- 1 root root  42M Dec 14 22:22 oracle-instantclient12.2-basic_12.2.0.1.0-2_amd64.deb
-rw-r--r-- 1 root root 551K Dec 14 22:22 oracle-instantclient12.2-devel_12.2.0.1.0-2_amd64.deb
-rw-r--r-- 1 root root 1.5M Dec 14 22:22 oracle-instantclient12.2-jdbc_12.2.0.1.0-2_amd64.deb
-rw-r--r-- 1 root root 633K Dec 14 22:23 oracle-instantclient12.2-sqlplus_12.2.0.1.0-2_amd64.deb
-rw-r--r-- 1 root root 795K Dec 14 23:17 oracle-instantclient12.2-tools_12.2.0.1.0-2_amd64.deb

安装完了之后在 ~/.zshrc 或者 ~/.bashrc 或者 /etc/profile(第三个需要重启电脑)中添加

# oracle
export ORACLE_HOME=/usr/lib/oracle/12.2/client64
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
export TNS_ADMIN=$ORACLE_HOME
export PATH=$ORACLE_HOME/bin:$PATH

/usr/lib/oracle/12.2/client64/ 下新建文件 tnsnames.ora 添加

xe=
  (DESCRIPTION =
   (ADDRESS_LIST =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 49161))
   )
   (CONNECT_DATA =
      (SERVICE_NAME = xe)
   )
  )

然后在终端中输入(需要新键用户等操作)

sqlplus eoda/foo@xe

就可以了

  • 原创
    11 引用 • 44 回帖
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    104 引用 • 126 回帖 • 432 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    925 引用 • 937 回帖 • 1 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
zeekling
应无所住,而生其心。 --《金刚经》 吾生也有涯,而知也无涯。 --《庄子》 西安