docker 运行oracle示例
拉取oralce
docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
第一次启动容器(创建)
docker run -d -p 1521:1521 --name oracle_11g registry.aliyuncs.com/helowin/oracle_11g
之后启动,容器已经创建(容器名称 oracle_11g)直接启动即可。
docker start oracle_11g
进入镜像
docker exec -it oracle_11g /bin/bash
切换root用户,密码:helowin
修改配置文件
vi /etc/profile
加入配置
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH= $ORACLE_HOME/bin:$PATH
加载环境变量
source /home/oracle/.bash_profile
切换oracle用户
sqlplus /nolog
connect /as sysdba
alter user system identified by oracle;
alter user sys identified by oracle;
只做步骤演示,并不推荐在 Docker 中运行数据库
主要有以下几个原因:
- 数据持久化问题:
虽然 Docker 可以进行数据卷挂载来实现数据持久化,但与专门的数据库存储方案相比,可能不够稳定和可靠。如果配置不当,可能会导致数据丢失。 - 资源限制:
在 Docker 容器中,资源(如 CPU、内存、IO 等)的分配和管理可能不如在物理机或虚拟机上直接运行数据库那样灵活和精细。 - 性能问题:
数据库通常对 I/O 性能要求较高,而 Docker 中的存储驱动和网络可能会引入一些额外的开销,影响数据库的性能。 - 备份和恢复复杂:
与直接在服务器上运行数据库相比,在 Docker 中进行数据库的备份和恢复操作可能更加复杂,需要额外的配置和处理。 - 缺乏完善的监控和管理工具:
针对 Docker 容器中的数据库,可能没有像专门为物理或虚拟机环境中的数据库提供的那样成熟和全面的监控和管理工具。 - 版本升级和维护困难:
在 Docker 环境中进行数据库的版本升级和维护操作可能会面临更多的挑战和复杂性。