当前位置: 首页 > 知识库问答 >
问题:

如何从oracle docker容器装载数据?

慎建本
2023-03-14

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

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

所以如果我现在开始我的docker-compose,docker将带有我的假文件的文件夹挂载到oracle容器中,所以数据库“坏了”。

docker compose file:

版本:" 3"
服务:< br > MySQL _ db:< br > container _ name:Oracle _ db < br > image:wnameless/Oracle-xe-11g:最新< br >端口:< br> -" 49160:22 " < br >-" 49161:1521 " < br >-" 49162:8080 " < br >重新启动:始终< br >卷:< br >-"。/Oracle _ data:/u01/app/Oracle/oradata“< br >-”。/startup _ scripts:/docker-entry point-initdb . d“< br >环境:< br> - ORACLE_ALLOW_REMOTE=true

问题:我如何才能摆脱这种行为
使用运行良好的mysql容器…
非常感谢!

共有2个答案

江正德
2023-03-14

您需要将文件复制到/0u1/app/oracle/oradata中,然后您就可以在系统的path中的容器外访问它。/orcle_data位置。

微生毅
2023-03-14

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

 类似资料:
  • 我创建了一个Docker容器,但现在需要将作为安装在容器内部。 如果我手动更改Docker文件夹中的文件,并取消挂载行的注释,Docker似乎挂起。 此外,文件会不时重新创建。 我需要知道在哪里可以更改创建lxc配置的Docker配置文件。

  • 问题内容: 我和一个拥有我所有资产的工具都来自grunt或其他一些工具。 现在在docker compose文件中,我想将的文件夹路径装入到其中,以便nginx可以提供该文件。 我们该怎么做?我不记得了,但我认为有一种选择可以使我们将一个容器的路径与另一个容器共享。 假设如果我将nginx扩展到2个容器,那么该安装将适用于所有nginx实例吗? 如果我扩大规模,那会发生什么? 我也想将其安装在主机

  • 我有两张docker的照片。其中一个docker映像(来自第一个容器)在运行时会生成一些文件,这些文件需要由另一个容器使用。 我可以这样做吗?

  • 问题内容: 我在android项目中使用docker作为GitLab CI运行器。在测试运行结束时,将测试结果保存在build目录下的xml和html中: 我想访问这些文件,但是文档中没有提到如何像那样装载卷。 问题答案: 我建议不要从主机为您的CI装入卷。如果确实需要,则必须相应地配置运行器()。如果使用的是运行程序,则永远不会知道要在哪个系统上执行特定的构建。 我认为更好的解决方案是将测试结果

  • 我正在码头程序窗口工具包上运行 mariadb 实例。我使用风筝在 mariaDB 容器上进行了一个可取的更改。现在,它重新创建了一个实例,丢失了我所有的数据库。有没有办法从中恢复过来? 检查是否存在悬空卷,并且数量很少 docker音量ls -f悬空=真

  • 问题内容: 我设置了以下环境: Java 1.5 Sun application server 8.2 Oracle 10 Xe *Pillar 2 hibernate 我想知道如何为Java客户端(即,Web应用程序外部)编写代码,该代码可以引用应用程序服务器提供的JNDI数据源。 Sun Application Server的端口均为默认端口。服务器配置中有一个名为jdbc / xxxx的JN