docker 基础以及配置镜像加速等这里不再描述,前面文章页提到过。直接进入安装步骤。

1,下载镜像

docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

2,启动镜像

docker run -d --name oracle -p 1521:1521 registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

3,进入容器(跳过不执行)

docker exec -it 容器id /bin/bash

到这里我们就可以正常使用oracle,但是因为oracle的数据是保存再容器内,如果容器损坏或者被删除则数据就会丢失,所以

我们需要把数据从容器内映射到宿主机上,这样可以保证数据的安全也更方便管理!

4,宿主机创建文件夹

mkdir -p /opt/oracle/
mkdir -p /opt/oracle/flash_recovery_area/

5,拷贝数据库文件至宿主机

docker cp 容器id:/home/oracle/app/oracle/oradata /opt/oracle/oradata
docker cp 容器id:/home/oracle/app/oracle/flash_recovery_area/helowin /opt/oracle/flash_recovery_area/helowin
chmod -R 777 /opt/oracle/

6,停止和删除容器

docker stop 容器id
docker rm 容器id

7,启动docker容器(映射数据文件)

docker run -d --name oracle_llg -p 1521:1521 --privileged=true -v /opt/oracle/oradata:/home/oracle/app/oracle/oradata -v /opt/oracle/flash_recovery_area/helowin:/home/oracle/app/oracle/flash_recovery_area/helowin registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g

到这里oracle就启动完成,并且数据文件也已经映射。

8,推荐用docker-compose进行管理

编辑docker-compose文件(oracle.yml)

oracle:
image: registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
environment:
- TZ=Asia/Shanghai
volumes:
- /opt/oracle/oradata/:/home/oracle/app/oracle/oradata/
- /opt/oracle/flash_recovery_area/helowin/:/home/oracle/app/oracle/flash_recovery_area/helowin/
ports:
- "1521:1521"
restart: always

启动服务

docker-compose -f oracle.yml up -d

docker重启后容器会自动启动

9,执行并完成基础设置

(1)进入docker的oracle_11g 容器

docker exec -it 容器id /bin/bash

(2)加载环境变量

source /home/oracle/.bash_profile

或者配置环境变量

此时,用户为oracle,我们切换为root用户。

su 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 /etc/profile

#切换回去
su oracle

(3)登录sqlplus

sqlplus /nolog

connect /as sysdba

(4)修改默认用户密码

alter user system identified by system;
alter user sys identified by sys;
#密码永不过期
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

(5)创建表空间

create tablespace test datafile '/home/oracle/app/oracle/oradata/helowin/test.dbf' size 500M autoextend on next 50M maxsize unlimited;

(6)创建用户并指定表空间

create user lwc IDENTIFIED BY 123456 default tablespace test;

(7)给用户授权

grant connect,resource,dba to lwc;

至此完成

IP: 宿主机 ip
端口: 1521
SID:helowin
账号:lwc
密码:123456
10,远程连接测试(这里用的JetBrains DataGrip 2019.1.4)