伙计们。
我刚遇到问题;我正在设置一个带有 Oracle 数据库的 Docker 环境。我以这种方式运行 oracledb 12c:
docker run -d -p 1521:1521 --name my-db sath89/oracle-12c
到目前为止一切顺利,如果我 docker logs 新容器运行良好,任何错误。
然后,我刚刚从另一台服务器导出了一个数据库,并将其导入到我的新数据库容器中。一切顺利,我可以毫无错误地导入它,并且我的环境成功启动。
当我尝试提交我之前创建的数据库容器时出现问题,我这样做:
docker commit my-db my-committed-db
提交成功,我得到了名为 my-committed-db 的新镜像,然后,我当然删除了所有旧容器。
但是当我以这种方式运行我在上一步中创建的图像时:
docker run -d -p 1521:1521 --name my-db my-committed-db
容器启动了,但是当我查看 docker 日志时,它只是退出 1。这就是我得到的:
docker logs -f my-db
ls: cannot access /u01/app/oracle/oradata: No such file or directory
Database not initialized. Initializing database.
Starting tnslsnr
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/xe.log" for further details.
我无法查看日志文件,因为容器已停止。
对我做错了什么有什么想法吗?我是不是漏掉了什么?
谢谢。
最佳答案
解决方案是为 sath89/oracle-12c 编辑原始 Dockerfile 并删除 VOLUMES 层。然后,构建一个新镜像,在那里执行导入过程,然后使用该镜像进行提交。
关于linux - 提交后启动时Docker Oracle数据库失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38124642/