具有预抽数据的Docker上的Oracle

时间:2014-10-21 05:08:42

标签: oracle docker

我使用以下基本泊坞文件:

https://github.com/wnameless/docker-oracle-xe-11g/blob/master/Dockerfile

我读了一些关于如何从SO questionthis blog设置数据Volumne的内容,但不确定如何将各个部分组合在一起。

总之,我想在一个只有数据的Docker镜像中管理oracle数据,怎么做呢?

3 个答案:

答案 0 :(得分:4)

我已经实现了db数据的装载量。 这是我的叉子:

  • 将图像尺寸从3.8G缩小到825Mb
  • 数据库初始化移出图像构建阶段。现在数据库在容器启动时初始化,没有安装数据库文件
  • 容器外的媒体重用支持。在集装箱停止时添加了正常关闭
  • 删除了sshd

您可以在此处查看:

https://registry.hub.docker.com/u/sath89/oracle-xe-11g

https://github.com/MaksymBilenko/docker-oracle-xe-11g

答案 1 :(得分:2)

我尝试在我的oracle xe容器中映射数据文件和快速恢复目录。但是,我在丢失文件后改变了主意......所以你应该非常小心这种方法并理解docker如何在所有操作下管理这些空间。

例如,我发现如果清除旧容器,即使映射到docker系统区域(/ var / lib / docker)之外的某些内容,映射目录的内容也将被删除。您可以通过保留容器并再次启动它来避免这种情况。但是,如果您想要版本并制作新图像......您必须备份这些文件。

Oracle也会识别文件本身(校验和或inode#或其他内容)并在启动时抱怨它们......我没有调查该问题的严重程度,即使确实存在任何问题。

我选择不映射任何这些文件/目录,并计划使用数据泵或其他任何东西来获取数据,直到我能更好地处理所有可能发生的事情。

所以我更新了图像的数据和版本...推送到回购以保存安全

答案 2 :(得分:0)

一般来说:

# Start data container
docker run -d -v /dbdata --name dbdata -it ubuntu

# Put oracale data in /dbdata some how

# Start container with stabase and look for data at /dbdata
docker run -d --volumes-from dbdata --name db -it ubuntu