一、前期准备
安装java8,参考ubuntu安装jdk8文档
安装docker,参考linux安装第三方库文档
二、安装Oracle镜像的过程
1、切换到root账号下,如果是普通账号,下面操作指令前面加sudo
2.搜索oracle镜像
docker search oracle
3.下载oracle镜像
Docker pull registry.cn-hangzhou.aliyuncs.com/qida/oracle-xe-11g
4.查看镜像
docker images
docker images registry.cn-hangzhou.aliyuncs.com/qida/oracle-xe-11g
5.从下载的镜像创建并启动容器
docker run -d -p 1521:1521 --name oracle11 registry.cn-hangzhou.aliyuncs.com/qida/oracle-xe-11g
这里把新建的容器命名为oracle11
6.查看当前运行的容器
docker ps
7.进入已经启动的Oracle的容器
docker exec -it oracle11 bash
8.进入sqlplus
sqlplus /nolog
9.使用sysdba角色登录sqlplus
conn sys/oracle as sysdba
10.查看当前实例下的数据库
11.查看有多少个数据表
12.退出sqlplus
exit
13.退出容器
exit 或Ctrl+D
14.重新进入已经运行的oracle容器,重新执行下面指令
docker exec -it oracle11 bash
15.如果容器停用了,则重新启动, 用你实际的容器ID代替下面的container_ID
docker start container_ID
16.停用正在运行的容器
docker stop container_ID
三、修改oracle配置信息(改端口)
(前期创建容器的时候改了端口就不需要此操作了。)
通过修改容器配置文件方式
$ systemctl stop docker
# 修改前需要停止docker
$ vi /var/lib/docker/containers/容器ID的hash值/hostconfig.json
# 容器ID的hash可通过docker ps获取容器ID,然后tab补全即可
# 在该文件中"PortBindings":{}中插入以下内容即可
"PortBindings":{"1521/tcp":[{"HostIp":"","HostPort":"11522"}]}
# 1521是容器内部暴露的端口,11522是容器映射到宿主机的端口
$ vi /var/lib/docker/containers/容器ID的hash值/config.v2.json
# 如果要映射的端口是原先容器没有对外暴露的,那么还需要修改config.v2.json文件,添加要暴露的端口
"ExposedPorts":{"1521/tcp":{},"8080/tcp":{}},
$ systemctl restart docker
此时执行docker ps是可以看到容器端口映射信息的。