甲骨文与预抽的数据的Docker

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

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

我读了一些关于如何从这个SO问题和这个博客设置数据Volumne,但不知道如何适应这些碎片。

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

我已经意识到为db数据安装卷。 这是我的叉子:

  • 将图像的大小从3.8G缩小到825Mb
  • 数据库初始化已移出映像构build阶段。 现在数据库在容器启动时初始化,没有装入数据库文件
  • 在容器之外的媒体重用支持。 增加了对容器停止的优雅closures
  • 删除了sshd

你可以在这里检查:

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

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

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

例如,我发现如果清理旧的容器,映射目录的内容即使映射到docker系统区域之外(/ var / lib / docker),也会被删除。 你可以通过保存容器并重新启动它来避免这种情况。 但是,如果您想要版本并创build一个新的映像…您必须备份这些文件。

甲骨文也ID的文件本身(校验和或inode#或东西),并在启动时抱怨他们….我没有调查的问题,甚至有任何问题,那里的程度。

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

所以我更新数据和版本的形象…推到回购保pipe

一般来说:

 # 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