我已经在Ubuntu 21.10上安装了docker,并遵循官方我提取的指令oracle11gxe图像:
docker pull oracleinanutshell/oracle-xe-11g
然后我开始了图像:
docker run -d -p 49161:1521 -p 8080:8080 oracleinanutshell/oracle-xe-11g
并使用Oracle SQL Developer我连接为SYSTEM并创建了一个标准用户,授予适当的权限(创建/删除表、序列等(。
然后,我以标准用户的身份连接,并开始创建和填充一些表。
但是,当停止docker映像并重新启动它时,用户和所有表都丢失了。可以采取什么措施来解决这个问题?
非常感谢!
您需要创建一个卷来保留持久数据。此外,一旦你开始处理这些事情。最好使用docker compose处理。
使用docker的选项1:
首先创建卷:
docker volume create db-vol
然后使用此命令连接存储数据的卷:
docker run -d -p 49161:1521 -p 8080:8080 -v db-vol:/opt/oracle/oradata oracleinanutshell/oracle-xe-11g
使用docker compose的选项2:
version: '3'
services:
oracle-db:
image: oracleinanutshell/oracle-xe-11g:latest
ports:
- 1521:1521
- 5500:5500
volumes:
- db-vol:/opt/oracle/oradata
volumes:
db-vol:
请在这里找到所需概念的理论:
https://docs.docker.com/storage/volumes/
https://hub.docker.com/r/oracleinanutshell/oracle-xe-11g