admin

docker容器方式部署oracle11g

admin 虚拟化 2019-04-26 3909浏览 0

几年前把由于项目经常用到oracle,而且单机使用,频繁安装,后来下定决心把oracle封装为docker镜像,提高效率。放在阿里云镜像市场,下载人数也很多,确实很有意思!


下载镜像

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

查看镜像

 docker images
REPOSITORY                                             TAG                 IMAGE ID            CREATED             SIZE
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g   latest              3fa112fd3642        3 years ago         6.85 GB


启动镜像

docker run -d --name oracle -p 1521:1521 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g


可进入容器查看

docker exec -it 3fa112fd3642 /bin/bash
[oracle@bd1796de8599 /]$ source /home/oracle/.bash_profile 
[oracle@bd1796de8599 /]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Fri Apr 26 17:05:41 2019
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
SQL> connect /as sysdba
Connected.


到这里我们就可以正常使用oracle,但是因为oracle的数据是保存再容器内,如果容器损坏或者被删除则数据就会丢失,所以

我们需要把数据从容器内映射到宿主机上,这样可以保证数据的安全也更方便管理!

宿主机创建文件

mkdir -p /opt/oracle/
mkdir -p /opt/oracle/flash_recovery_area/



将容器内的文件拷贝到宿主机,方便文件映射(3fa112fd3642为容器ID

docker cp 3fa112fd3642:/home/oracle/app/oracle/oradata /opt/oracle/oradata
docker cp 3fa112fd3642:/home/oracle/app/oracle/flash_recovery_area/helowin /opt/oracle/flash_recovery_area/helowin
chmod -R 777 /opt/oracle/

然后就可以启动了 

先停止和删除容器

docker stop 3fa112fd3642
docker rm 3fa112fd3642



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

可以写个小脚本oracle.sh 内容如下:

docker run -d --name oracle -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

然后执行 sh oracle.sh


到这里oracle就启动完成,并且数据文件也已经映射。


推荐用docker-compose进行管理

安装docker-compose参考:https://mhsj.net/59.html

编辑docker-compose文件(oracle.yml)

注意格式

oracle:
  image: registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
  environment:
    - TZ=Asia/Shanghai
  volumes:
    - /opt/oracle/oradata/:/home/oracle/app/oracle/oradata/
    - /opt/oracle/flash_recovery_area/helowin/:/home/oracle/app/oracle/flash_recovery_area/helowin/
  ports:
    - "1521:1521"
  restart: always

启动服务

docker-compose -f oracle.yml up -d

docker重启后容器会自动启动




其他方式

registry.cn-hangzhou.aliyuncs.com/jydsun/oracle11g_ssg:1.04

cat docker-compose.yml 


oracle:

  image: registry.cn-hangzhou.aliyuncs.com/jydsun/oracle11g_ssg:1.04

  environment:

    - TZ=Asia/Shanghai

  volumes:

    - /home/oracle/app/oradata/:/opt/oracle/app/oradata/

    - /home/oracle/app/flash_recovery_area/:/opt/oracle/app/flash_recovery_area/

    - /home/oracle/app/dpdump/:/opt/oracle/dpdump/

  ports:

    - "1521:1521"

  restart: always




版权声明

本站《作品展示》类文章均为原创,转载必须注明出处,技术分享类文章部分来源于网络,版权归原作者所有,若侵权请留言。

发表评论