docker compose关闭后,docker化的Oracle架构消失

docker compose关闭后,docker化的Oracle架构消失,oracle,docker,docker-compose,Oracle,Docker,Docker Compose,我发现我的docker-docker Oracle重新创建了整个模式(表、包等),就像我使用docker-docker-docker-d Oracle一样。不幸的是,我丢失了所有的本地数据 当容器第一次启动时,将自动创建架构。我读过的一些材料说,docker compose down将撤销docker compose up所做的任何操作 我想知道这是否属实,是否与我的问题有关 下面是我的卷在docker-compose.yml中对Oracle的配置 volumes: - ${HOST_PAT

我发现我的docker-docker Oracle重新创建了整个模式(表、包等),就像我使用docker-docker-docker-d Oracle一样。不幸的是,我丢失了所有的本地数据

当容器第一次启动时,将自动创建架构。我读过的一些材料说,docker compose down将撤销docker compose up所做的任何操作

我想知道这是否属实,是否与我的问题有关

下面是我的卷在docker-compose.yml中对Oracle的配置

volumes:
  - ${HOST_PATH}/config/localtime:/etc/localtime:ro
  - ${HOST_PATH}/config/timezone:/etc/timezone:ro
  - ${HOST_PATH}/config/scripts/:/scripts/:ro
  - oracle_data:/opt/oracle/oradata
  # Setup data pump directory to initialize the database
  - ${HOST_PATH}/test-data/prebuilt/:/prebuilt/
  - ${HOST_PATH}/test-data/datapump/:/datapump/
  - ${HOST_PATH}/config/oracle/ora-init-scripts/:/opt/oracle/scripts/startup
我不确定,但我认为主数据没有通过此配置安装到外部 -oracle\u数据:/opt/oracle/oradata
因此,内部卷将在docker compose down销毁其容器时被销毁。

docker compose down
会销毁从相应的
docker compose.yml
文件中创建的卷。您可以从外部创建卷,也可以显式指定支持卷的服务器目录。答案提供了一个工作示例。

您研究过Docker卷吗?停止容器不应销毁数据。执行docker compose stop不会销毁数据。但是docker写下来的呢?我已经对我的卷的配置提出了疑问。快速的google搜索会告诉你,
down
删除容器/卷。我知道docker compose down会删除容器,但只有使用参数-v,它也会删除卷。我从来没有停止过-v。问题不在于
docker compose
和它在做什么,而是你的卷是什么以及你是否保存了数据库数据文件。另一方面,这在很大程度上取决于您使用的Docker映像以及数据文件放置的位置。默认情况下,Oracle数据库会将您的所有数据库数据文件置于
$Oracle\u HOME/oradata/$Oracle\u SID
下,只要该文件存在,您的数据也会保存。综上所述,我在您的卷配置中没有看到任何
oradata
或类似内容。您使用的是哪个Docker映像,数据库数据文件位于何处?