甲骨文与预抽的数据的Docker
我正在使用以下基本泊坞窗文件:
https://github.com/wnameless/docker-oracle-xe-11g/blob/master/Dockerfile
我读了一些关于如何从这个SO问题和这个博客设置数据Volumne,但不知道如何适应这些碎片。
总之,我想pipe理oracle数据中只有一个数据的Docker镜像,该怎么做呢?
我已经意识到为db数据安装卷。 这是我的叉子:
- 将图像的大小从3.8G缩小到825Mb
- 数据库初始化已移出映像构build阶段。 现在数据库在容器启动时初始化,没有装入数据库文件
- 在容器之外的媒体重用支持。 增加了对容器停止的优雅closures
- 删除了sshd
你可以在这里检查:
我试图在我的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