docker run -d -p 1521:1521 --restart=always --privileged=true -v /home/oracleData/:/home/oracleData/:rw --name dworacle registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
通过docker ps查看启动情况
3,进入容器进行配置
docker exec -it 7006e6e31c95 /bin/bash
4,配置oracle
1)配置sqlplus软连接 切换到root用户下 密码为helowin 此时还是在容器中 设置配置文件:
vim /etc/profile
添加:
export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
export ORACLE_SID=helowin
export PATH=ORACLEHOME/bin:ORACLE_HOME/bin:ORACLE
保存并退出 source /etc/profile
5,创建软连接
ln -s $ORACLE_HOME/bin/sqlplus /usr/bin
切换到oracle用户
$ su - oracle
修改oracle默认密码(可选)
账号 | system |
---|---|
密码 | helowin |
sid | helowin |
#容器切换oracle用户
su oracle
#登录oracle dba
sqlplus /nolog;
conn /as sysdba;
#修改初始账号
alter user system identified by system;
alter user sys identified by sys;
#添加自己的dba账号
create user my_account identified by my_password;
grant connect,resource,dba to my_account;
也可以创建用户 $ create user test identified by test;
并给用户赋予权限 $ grant connect,resource,dba to test;
#设置密码永不过期
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
#关闭
shutdown immediate;
#启动数据库
startup;
6、使用plsql连接数据库
1)查看全局服务名
进入到sqlplus
1.实例名
select instance_name from v$instance;
2.服务名:
select global_name from global_name;
查询的结果应该为helowin
再plsql的配置文件中配置数据库连接
docker_oracle11 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 服务主机的ip )(PORT =1521))
)
(CONNECT_DATA =
(SERVICE_NAME = helowin)
)
)
七、修改全局服务名 (可选)
进入sqlplus,执行以下操作
SQL> alter system set global_names=true;
SQL> ALTER DATABASE RENAME GLOBAL_NAME TO ORCL;
补充:修改用户密码
1.进入sqlplus
$ sqlplus /nolog --登入sqlplus
$ conn /as sysdba --以sysdba登入
$ alter user system account unlock --解锁system
$ alter user system identified by 新密码 --修改密码
监听服务:
lsnrctl start 打开监听
lsnrctl status 查看Oracle监听器运行状况
lsnrctl stop
停止容器
2) 停止docker服务(systemctl stop docker)
3) 修改这个容器的hostconfig.json文件中的端口(原帖有人提到,如果config.v2.json里面也记录了端口,也要修改)
cd /var/lib/docker/3b6ef264a040* #这里是CONTAINER ID
vi hostconfig.json
如果之前没有端口映射, 应该有这样的一段:
"PortBindings":{}
增加一个映射, 这样写:
"PortBindings":{"3306/tcp":[{"HostIp":"","HostPort":"3307"}]}
前一个数字是容器端口, 后一个是宿主机端口.
而修改现有端口映射更简单, 把端口号改掉就行.
4) 启动docker服务(systemctl start docker)
5) 启动容器