DOCKER容器无法连接外部ORACLE

问题描述:

docker部署spring boot服务,容器启动过程中,无法连接docker外部oracle数据库。

dockerfile配置如下:

FROM jdk1.8
MAINTAINER admin
COPY application.properties application.properties
ADD *.jar *.jar
EXPOSE 50001
ENTRYPOINT ["java","-jar","*.jar","--spring.config.location=application.properties"]

问题原因:

docker容器内部默认时区为美国时间,与容器的宿主机时间不一致,可通过下列命令查看容器内部时间。

docker exec -it 容器id /bin/bash
date

解决方案:

  1. 修改dockerfile文件,添加ENV TZ=Asia/Shanghai。
FROM jdk1.8
MAINTAINER admin
COPY application.properties application.properties
ADD *.jar *.jar
EXPOSE 50001
ENV TZ=Asia/Shanghai
ENTRYPOINT ["java","-jar","*.jar","--spring.config.location=application.properties"]
  1. 执行docker run 命令时,添加 -v /etc/localtime:/etc/localtime参数。
要在MacOS上安装Oracle11g并运行在Docker容器中,首先需要确保你的Mac安装了Docker环境。然后,通过Docker提供的容器化技术,我们可以简化安装过程并避免直接在MacOS上安装Oracle11g数据库的复杂性。接下来,你需要从DockerHub或者阿里云的镜像仓库中拉取Oracle11g的官方Docker镜像。例如,你可以使用以下命令从阿里云拉取镜像: 参考资源链接:[Mac上使用Docker安装Oracle11g教程](https://wenku.csdn.net/doc/2h750700sj?spm=1055.2569.3001.10343) ```*** ***/helowin/oracle_11g ``` 完成镜像下载后,你可以通过以下命令运行Oracle11g容器: ```bash docker run -d --name oracle11g -p 1521:1521 -p 5500:5500 \ -e ORACLE_SID=ORCLCDB \ -e ORACLE_PWD=your_password \ -v /path/to/local/data:/u01/app/oracle \ ***/helowin/oracle_11g ``` 在这个命令中,我们通过挂载卷的方式将本地目录映射到容器内部Oracle数据的存储位置,同时映射了数据库使用的默认端口1521和5500到容器外部,使其可以在Mac主机上被访问。`ORACLE_SID`和`ORACLE_PWD`环境变量分别设置了数据库的系统标识符和管理密码。 容器启动后,你可以通过查看容器的日志来确保Oracle11g数据库正常运行: ```bash docker logs oracle11g ``` 如果一切正常,你应该能够看到Oracle的启动信息,并且数据库服务正在监听所映射的端口。此时,你可以使用Oracle数据库管理工具(如SQL Developer)连接数据库。 通过上述步骤,你可以在MacOS上通过Docker容器成功安装并运行Oracle11g数据库。为了深入了解Docker容器技术或Oracle数据库的高级配置,你可以参考《Mac上使用Docker安装Oracle11g教程》,该教程详细讲解了整个安装过程,并提供了丰富的实战经验。 参考资源链接:[Mac上使用Docker安装Oracle11g教程](https://wenku.csdn.net/doc/2h750700sj?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值