Linux环境下在docker中配置Oracle数据库并实现数据持久化

一  CentOs安装docker

Linux安装docker参照https://blog.csdn.net/qq_36892341/article/details/73918672

前置条件:

64-bit 系统

kernel 3.10+

作者以下操作皆在root用户下进行

1.检查内核版本,返回的值大于等于3.10即可。

  # uname -r

2.确保yum是最新的

  # yum update

3.添加 yum 仓库

tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/$releasever/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF

4.安装 Docker

  # yum install -y docker-engine

安装成功后,使用docker version命令查看是否安装成功,安装成功后------如下图

5.启动docker

  #systemctl start docker.service

6.验证安装是否成功(有client和service两部分表示docker安装启动都成功了)

使用docker version命令查看

7.设置开机自启动

 # sudo systemctl enable docker

到此为止docker就完全安装好了。

二  docker配置Oracle数据库并实现数据持久化

本次配置的为Oracle 11gr2版本数据库

  • 在docker 中获取oracle镜像信息

# docker search oracle

  • 选定镜像,并pull到系统中,一定要先配置加速,不然超级慢
  • 友情提示(至少作者遇见的情况是这样)
  • 一定要选sath89/oracle-xe-11g 不要选wnameless/oracle-xe-11g
  • 一定要选sath89/oracle-xe-11g 不要选wnameless/oracle-xe-11g
  • 一定要选sath89/oracle-xe-11g 不要选wnameless/oracle-xe-11g
  • 不然无法实现数据持久化

docker pull sath89/oracle-xe-11g

  • 查看已经下载的镜像

$ docker images

  • 列出运行中的容器

[root@VM_0_3_centos ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS 

  • 数据持久化

#启动

[root@VM_0_3_centos ~]# docker run -d -p 49160:22 -p 49161:1521 -v /jie:/u01/app/oracle/ --name xe  sath89/oracle-xe-11g
#参数 -d 后台运行容器,并返回容器ID ; -p 指定端口 , -v 指定数据卷位置

#你只需要明白 -v 命令后面的就ok /jie 指定你当前服务器的文件位置 没有会创建 /u01

/app/oracle指定oracle的映射路径 也就是说 数据库中这个目录下的文件都会在你服务器/jie中存在 反之亦然

#查看运行容器

[root@VM_0_3_centos ~]# docker ps
CONTAINER ID        IMAGE                  COMMAND             CREATED             STATUS              PORTS                                                      NAMES
26a0507505c8        sath89/oracle-xe-11g   "/entrypoint.sh "   20 hours ago        Up 14 seconds       8080/tcp, 0.0.0.0:49160->22/tcp, 0.0.0.0:49161->1521/tcp   xe

#查看本地目录 发现有个jie目录

#创建文件测试

[root@VM_0_3_centos jie]# sudo touch jie.txt

#查看容器内的内容是否新增

[root@VM_0_3_centos jie]# docker exec -it xe /bin/bash

连接Oracle 11g

--使用此镜像创建的oracle用户和密码: 

hostname:localhost

port: 49161

sid: xe

service name: xe

username: system

password: oracle

猜你喜欢

转载自blog.csdn.net/qq_27050005/article/details/81479171