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

时间:2017-10-19 12:53:35

标签: oracle docker containers

我只想用docker-compose.yml启动一个oracle docker容器 到目前为止,直到我添加了一个文件夹来同步/挂载/容器中的任何内容
问题1:如果主机上的文件夹丢失 - docker没有安装任何东西
问题2:git忽略了一个空文件夹 - 所以我添加了一个空文件.emptyfileforgit

因此,如果我现在启动我的docker-compose,docker将带有我的假文件的文件夹安装到oracle容器,因此数据库被“破坏”。

docker撰写文件:

  

版本:“3”
  服务:
     mysql_db:
        container_name:oracle_db
        image: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容器......

非常感谢!

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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