我们正在尝试从基于来自 docker store ( https://store.docker.com/images/oracle-database-enterprise-edition )的 Oracle 12c 企业版镜像的容器中创建一个 docker 镜像。我们让容器正常工作,然后在停止容器后,我们使用以下命令基于该容器创建一个映像。
docker commit Oracle_12 oracle/oradb:1
Run Code Online (Sandbox Code Playgroud)
然后,我们尝试使用以下命令使用提交的映像运行容器:
docker run -d -it --name oradb_cont -p 1512:1521 -p 5500:5500 oracle/oradb:1
Run Code Online (Sandbox Code Playgroud)
此容器失败并出现以下错误:
Start up Oracle Database
Wed Nov 15 10:31:29 UTC 2017
start database
start listener
The database is ready for use .
tail: cannot open '/u01/app/oracle/diag/rdbms/orclcdb/ORCLCDB/trace/alert_ORCLCDB.log' for reading: No such file or directory
tail: no files remaining
Run Code Online (Sandbox Code Playgroud)
尽管消息“数据库已准备好使用”,但容器已“退出”。我们已将 bash 附加到容器以检查丢失文件的位置。结果似乎是“/diag”文件夹是一个损坏的符号链接:
启动原始 Oracle 12c 容器并附加 bash,该文件夹存在。符号链接似乎已损坏,或者该文件仅存在于从容器创建的图像中。