1. 卸载旧版本安装包: (因为以前旧的安装是 yum install docker 现在是yum install docker-ce, 但请安装完整的安装步骤进行,避免各种错误)
yum remove docker docker-common docker-selinux docker-engine
2. 安装依赖包:
yum install -y yum-utils device-mapper-persistent-data lvm2
3 . 添加yum 源仓库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 如果下载不了,可以使用阿里云的镜像:
# yum-config-manager -add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4. 清除yum 缓存,重新加载yum源, 这一步文档上没有,但要执行一下,不然会报错。 (防止)
yum clean all
yum makecache
5. 下载安装docker-ce:
yum install docker-ce
启动 systemctl start docker
重启 systemctl restart docker
查看docker 运行状态: docker ps
##如果未安装过docker ,也可通过如下方式安装:
## Centos 下载安装 docker : yum install docker
## debian/ubuuntu/deepin 下载安装docker : apt-get install docker
6 .拉取oracle 镜像
拉取oracle镜像(oracle 11.0.2 64bit 企业版 实例名: helowin)
# docker pull registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
7.创建目录 用于挂载 oralce
mkdir /usr/local/data_temp
chown -R 500.500 /usr/local/data_temp
8.启动oracle
其中,oracle_11g是名称,-p是端口映射,-v是将宿主机的/usr/local/data_temp 目录映射到容器内的 /home/oracle/data_temp内。
docker run -d -p 1521:1521 -v /usr/local/data_temp:/home/oracle/data_temp registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g
9. 进入容器
docker ps ## 查看容器的id号,复制一下 : 244a5b50aa94
--- sudo docker rename xxx oracle 修改容器默认名称为oracle
进入容器: docker exec -it 244a5b50aa94 /bin/bash
10.查看oracle状态,修改system用户密码。
(1). source ~/.bash_profile ## 加载一下用户环境变量,进入容器后,自动是oracle用户
(2). sqlplus /nolog ## 使用sqlplus 工具,进去命令行
(3). SQL> connect /as sysdba ## 使用sysdba 连接oracle,最大权限,os认证,只能在本机上登陆使用。
(4). SQL> select status from v$instance; ## 查看oracle现在的状态 ,状态为 OPEN 则正常,表示已开启状态。
(5). SQL> alter user system identified by root; ## 修改用户 system 的密码为 root ,可以自定义
11.修改oracle数据库编码为 中国编码(常用编码)。 默认的是美国的UTF8编码
(1). SQL> select * from nls_database_parameters where parameter ='NLS_CHARACTERSET';<span style="white-space:pre;"> </span> ## 查看数据库编码,结果最下面一行则是目前编码
(2). SQL> shutdown immediate; ## 关闭数据库
(3). SQL> startup mount; ## 启动到 mount状态,oracle分为4个状态,详情请百度
(4). SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION; ## 设置session ,下同
(5). SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
(6). SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
(7). SQL> alter database open; ## 打开oracle到 open状态
(8). SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK; ## 修改编码为 ZHS16GBK
(9). SQL> shutdown immediate; ## 重启oracle ,先关闭,再启动
(10). SQL> startup;
12.创建自定义的 directory ,用于存放备份数据 及 数据导入。
SQL> create or replace directory DATA_TEMP as '/home/oracle/data_temp';
13.然后就是创建表空间,创建用户,并授权。
(1). ## 查询临时表空间的路径
SQL> select name from v$tempfile;
(2). 创建表空间,名:test_data ,数据文件路径复制临时表空间数据文件路径然后改一下文件名就行了,大小:1G, 自动增长:50M 。 参数根据自己的需求自行修改
SQL> create tablespace test_data datafile '/home/oracle/app/oracle/oradata/helowin/test_data.dbf' size 2G reuse autoextend on next 500M maxsize unlimited default storage(initial 128k next 128k minextents 2 maxextents unlimited);
(3). 创建用户,mogo,密码:mogo,设置默认表空间为刚才创建的 test_data, 临时表空间设为默认的 TEMP。
SQL> create user mogo identified by mogo default tablespace test_data temporary tablespace TEMP;
(4).## 授权用户 mogo,拥有连接,管理员,导入,导出权限,并可以传递权限。(根据需求自己定义权限)
SQL> grant connect,dba,exp_full_database,imp_full_database to mogo with admin option;退出sqlplus:exit; 回到oracle 用户:
14 .导入表数据 :
impdp mogo/mogo directory=DATA_TEMP dumpfile=data-mogo.dmp full=y table_exists_action=replace
## 导出表数据 : expdp mogo/mogo@helowin dumpfile=BPM.EXPDP directory=DATA_TEMP
将容器打包成镜像
docker commit -a "ever" -m "oracle" 244a5b50aa94 ever/oracle
导出镜像文件
docker save -o /application/oracle.tar 988705dcf9a6 (imageID)
-- 运行打包好的镜像
docker run -d -p 11521:11521 988705dcf9a6 /home/ever/oracle/start.sh