Docker Oracle数据库-can';t覆盖凭据的环境变量
我想在服务器上配置Oracle数据库。为此,我使用DockerHub的以下图片: 在将图像包含在Docker Oracle数据库-can';t覆盖凭据的环境变量,oracle,docker,docker-compose,Oracle,Docker,Docker Compose,我想在服务器上配置Oracle数据库。为此,我使用DockerHub的以下图片: 在将图像包含在docker compose.yml文件中后,我无法覆盖访问数据库的默认凭据(用户名为system,密码为oracle)。这是我的docker-compose.yml文件的外观: version: '3.5' services: oracle12c-db: image: sath89/oracle-12c restart: always # restart policy ports: - 152
docker compose.yml
文件中后,我无法覆盖访问数据库的默认凭据(用户名为system
,密码为oracle
)。这是我的docker-compose.yml文件的外观:
version: '3.5'
services:
oracle12c-db:
image: sath89/oracle-12c
restart: always # restart policy
ports:
- 1521:1521
environment:
- USER=myusername
- PASS=mypass
- HOST=oracle-database
- PORT=1521
- ORACLE_SID=XE
- HTTP_PORT=8080
成功执行命令
docker compose up
后,我仍然无法使用新凭据(仅使用默认凭据)访问数据库。我的docker compose
文件的语法是否正确,或者我是否遗漏了其他内容?提前感谢您的帮助 我不认为您可以在运行时特别轻松地修改它
选项1是基于用户和密码创建自己的Dockerfile,并在构建时传入(或将其硬编码为其他内容)
选项2是修改其入口点,并在启动时运行相应的Oracle命令以更改用户/密码,这样就解决了问题。我还想问一下,我该如何将自己的转储文件导入数据库?上面提到的docker形象的创作者简要地描述了它,但作为一个docker新手,我发现这很难理解。我应该将.dmp文件放在何处,并将文件路径作为环境变量粘贴到“docker run”命令中,还是将卷映射到主机服务器上的目录,然后将dmp文件放在其中。如果您希望Oracle文件也位于容器映射之外,请执行以下操作。如果要在以后重新导入dmp,请删除备份文件夹中的.cache文件以及数据文件夹中的所有文件。例如,在docker compose
卷中:-/datadir:/u01/app/oracle-/backupdir:/docker入口点initdb.d