【问题标题】:how can i mount data from oracle docker container?如何从 oracle docker 容器挂载数据?
【发布时间】:2018-03-31 12:28:15
【问题描述】:

我只想用 docker-compose.yml 启动一个 oracle docker 容器。
到目前为止有效,直到我添加了一个文件夹以从容器中同步/装载/任何内容。

问题 1:如果主机上的文件夹丢失 - docker 不挂载任何东西
问题 2:空文件夹被 git 忽略 - 所以我添加了一个空文件 .emptyfileforgit

因此,如果我现在启动 docker-compose up,docker 会将包含我的假文件的文件夹安装到 oracle 容器中,因此数据库“损坏”。

码头工人撰写文件:

版本:“3”
服务:
mysql_db:
容器名称:oracle_db
图片:wnameless/oracle-xe-11g:最新
端口:
- “49160:22”
- “49161:1521”
- “49162:8080”
重启:总是
卷:
- “./oracle_data:/u01/app/oracle/oradata”
-“./startup_scripts:/docker-entrypoint-initdb.d”
环境:
- ORACLE_ALLOW_REMOTE=true

问题:我怎样才能摆脱这种行为?
有了一个运行良好的 mysql 容器......

非常感谢!

【问题讨论】:

    标签: oracle docker containers


    【解决方案1】:

    通过使用卷,folder/path/in/host : folder/path/in/container,容器文件夹中的数据被映射到主机中提供的位置。最初 db 数据为空,这就是您的主机文件夹不包含任何数据的原因。并且不要将模拟无效数据放在容器的 db 文件夹中。因为它会破坏你的数据库。如果要添加转储数据库数据,只需将其放在主机文件夹的文件夹中,它将映射到容器中的路径

    【讨论】:

    • 嗯不 - 最初数据库数据不为空。如果我在没有- "./oracle_data:/u01/app/oracle/oradata" 的情况下启动容器,那么文件夹/u01/app/oracle/oradata 将充满数据库(带有.dbf 文件的文件夹XE)-我认为这应该是正常的方式吗?但现在的问题是,我如何将这些数据从 docker 容器中挂载出来。
    【解决方案2】:

    你需要复制/0u1/app/oracle/oradata中的文件 然后您可以在路径 ./orcle_data 位置从系统中的容器中访问它。

    【讨论】:

      猜你喜欢
      • 2017-10-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-30
      • 2017-08-14
      • 2015-08-19
      • 2016-08-01
      相关资源
      最近更新 更多