在Docker中安装配置Oracle12c并实现数据持久化
  • 选定镜像,并pull到系统中,一定要先配置加速,不然超级慢
eric@userver:~$ docker pull sath89/oracle-12c Using default tag: latest latest: Pulling from sath89/oracle-12c 863735b9fd15: Downloading 5.25MB/65.67MB 4fbaa2f403df: Download complete 44be94a95984: Download complete a3ed95caeb02: Download complete b8bc6e8767ee: Download complete c918da326197: Download complete 448e1619a038: Download complete faadd00cf98e: Downloading 2.625MB/2.768GB 94c8eec9fdf0: Download complete 58e66654f771: Downloading 1.3MB/4.437MB
  • 查看已经下载的镜像
eric@userver:~$ docker images REPOSITORY TAG IMAGE ID CREATED SIZE sath89/oracle-12c latest 17cd1ab9d9a7 12 days ago 5.7GB hello-world latest f2a91732366c 4 weeks ago 1.85kB
  • 列出运行中的容器
#暂时没有运行中的 eric@userver:~$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
使用oracle12c创建容器
  • 方式一:创建端口并运行,这样每次退出数据不会保留
$ docker run -d -p 8080:8080 -p 1521:1521 sath89/oracle-12c
  • 方式二:用数据卷实现容器和数据的有效分离,实现数据持久化
$ docker run -d -p 8080:8080 -p 1521:1521 -v /local_dir:/data sath89/oracle-12c #参数 -d 后台运行容器,并返回容器ID ; -p 指定端口 , -v 指定数据卷位置
  • 数据卷的特点:
1、可以供多个容器访问,直接共享或者重用
2、独立于容器周期,不会在删除容器时删除其挂载的数据卷
3、数据卷在容器启动时初始化,如果容器使用的镜像在挂载点包含的数据这些数据会复制到新的容器中
4、可以直接对数据卷里的内容进行修改
  • 数据持久化
#启动 eric@userver:~$ docker run -d -p 8080:8080 -p 1521:1521 -v /home/eric/oradata:/u01/app/oracle sath89/oracle-12c 7485d22f2fd5c5d7023407d280fb68b0251841560c121bb2be5954954aa7a698 #查看运行容器 eric@userver:~$ docker ps CONTAINER ID IMAGE COMMAND 7485d22f2fd5 sath89/oracle-12c "/entrypoint.sh " #查看本地目录,发现有个oradata目录 #在该目录下新建测试文件 eric@userver:~/oradata$ sudo touch test.txt #查看容器中的内容是否新增 $ sudo docker exec 7485d22f2fd5 ls /u01/app/oracle ... test.txt ... #其实 本地卷中的数据和容器中是同步的
  • 删除容器,数据不会一同删除
$ docker stop 7485d22f2fd5 $ docker rm 7485d22f2fd5 $ ls oradata #数据依然存在 audit checkpoints diag oradata test.txt
  • 重新启动一个容器,挂载该数据卷
$ sudo docker run -it --name oracle2 -v /home/eric/oradata:/datatest sath89/oracle-12c
/home/eric/oradata 为本机目录 /datatest为docker的目录
#--name 指定一个名字,不指定会默认随机分配一串字符 $ sudo docker exec oracle2 ls /data_test $ docker exec oracle2 ls /data_test ... test.txt ... #可以同样看到数据
  • 运行该容器
eric@userver:~$ docker exec -it 7485d22f2fd5 /bin/bash root@7485d22f2fd5:/
连接oracle12c
--使用此镜像创建的oracle用户和密码: systme/oracle|sys/oracle hostname:localhost port: 1521 sid: xe service name: xe username: system password: oracle --sqlplus 连接: root@7485d22f2fd5:/# sqlplus system/oracle@//localhost:1521/xe SQL*Plus: Release 12.1.0.2.0 Production on Wed Dec 20 06:25:21 2017 Copyright (c) 1982, 2014, Oracle. All rights reserved. Connected to: Oracle Database 12c Standard Edition Release 12.1.0.2.0 - 64bit PrSQL SQL> -- 修改密码有效期,由180天改成无限制 SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; Profile altered. SQL> -- 解锁用户 alter user SYSTEM account unlock
docker run -d -p 8080:8080 -p 1521:1521 -v /u01/app/oracle/oradata/12c:/u01/app/oracle sath89/oracle-12c
docker exec -it f412c945d07f /bin/bash

在Docker中安装配置Oracle12c并实现数据持久化的更多相关文章

  1. 在Docker中安装配置Oracle11g并实现数据持久化

    1.拉取镜像 docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g 镜像详情:https://dev.aliyun.com/ ...

  2. docker 中 安装配置 mysqlcluster(arm)

    1:创建两个docker container 这里我使用给指定 container ip的形式创建: 查看容器网络 docker network ls 创建一个新的bridge网络 docker ne ...

  3. Docker中安装配置Oracle数据库

    本文使用的OS是Ubuntu([16.04.1_server][1])[注:Ubuntu是安装在vmware虚拟机上的]. 其他的Oracle连接工具:[sqldeveloper-4.1.5.21.7 ...

  4. elk系列教程:docker中安装配置elk

    elasticSearch Docker安装elasticsearch: docker pull docker.io/elasticsearch:7.2.0 启动: docker run -p 920 ...

  5. docker微服务部署之:四、安装docker、docker中安装mysql和jdk1.8、手动构建镜像、部署项目

    docker微服务部署之:三,搭建Zuul微服务项目 1.Centos7安装Docker 详见:Centos7安装Docker 2.Docker中安装jdk1.8 详见:使用Docker构建jdk1. ...

  6. Windows和Centos下Docker的安装配置

    Windows和Centos下Docker的安装配置 windows环境下的安装(win10) 在Windows系统上需要利用toolbox来安装Docker,现在 Docker 有专门的 Win10 ...

  7. Docker容器安装配置SQLServer服务(Linux)

    一:前言 随着不断的对Docker容器的实践和学习,越来越觉得容器的强大,把 SQL Server 数据库服务放在docker容器中,比你自己在宿主服务器上面安装配置一个SQL Server服务器是要 ...

  8. Linux或Docker里安装minio / Docker中安装h5ai

    此文为单节点搭建操作 Linux中搭建minio 对象存储服务器 下载minio安装包 wget https://dl.minio.io/server/minio/release/linux-amd6 ...

  9. Eclipse中安装配置Tomcat

    Eclipse(4.4.x及以上)中安装配置Tomcat 以下配置说明全部针对免安装版本 基于tomcat的安装目录和运行目录是可以不同的,本文都会进行说明 首先简单介绍一下tomcat的目录结构,一 ...

随机推荐

  1. MySQL Transaction--事务相关查询

    MySQL支持的四种事务隔离级别 READ-UNCOMMITTED READ-COMMITTED REPEATABLE-READ SERIALIZABLE 查看全局事务隔离级别和会话事务隔离级别 SH ...

  2. MySQL--查看数据库连接信息

    ===================================== 查看当前连接到数据库的用户和Host ## 查看当前连接到数据库的用户和Host ## SELECT DISTINCT US ...

  3. CONTINUOUS MIGRATION

    转自:https://pgloader.io/blog/continuous-migration/ After having been involved in many migration proje ...

  4. SWF 文件不能本地访问 只有仅限于文件系统的 SWF 文件

    http://blog.163.com/vituk93@126/blog/static/1709580342012512112757505/ SWF 文件不能被本地访问 不能访问本地 只有仅限于文件系 ...

  5. mvn+spring+webapp模板

    idea新建项目,选择maven-archetype-webapp 在main目录下创建java  resource 文件夹,赋予特殊文件夹 pom.xml 添加 <!--Spring框架核心库 ...

  6. AIX系统日志

    1.系统错误日志 存放路径:/var/adm/ras/errlog 说明:该日志记录了系统所检测到的软硬件故障和错误,尤其对系统的硬件故障有很大的参考价值,是AIX提供的最有价值的日志之一, errl ...

  7. 岭回归和Lasso回归以及norm1和norm2

    norm代表的是距离,两个向量的距离:下图代表的就是p-norm,其实是对向量里面元素的一种运算: 最简单的距离计算(规范)是欧式距离(Euclidean distance),两点间距离是如下来算的, ...

  8. java 加载数据库驱动

    JDBC编程步骤见 JDBC编程步骤 JDBC编程的第一步是加载数据库驱动,使用Class类的forName()方法,Class.forName("com.mysql.jdbc.Driver ...

  9. secureCRT关闭连接自动关闭tomcat服务

    下午遇到一个神奇的问题: secureCRT登陆某个服务器,用shell脚本启动./catalina.sh start,打开日志tail -f catalina.out,此时 手动关闭连接窗口,导致t ...

  10. Linux split命令详解

    Linux split命令 Linux split命令用于将一个文件分割成数个.该指令将大文件分割成较小的文件,在默认情况下将按照每1000行切割成一个小文件. 将输入内容拆分为固定大小的分片并输出到 ...