上回说到我们已经成功的安装了docker在我们的小破本上了,那么就可以开始我们的oracle 11g的安装了
第一步,打开aliyun的镜像服务找到一个镜像
https://cr.console.aliyun.com/cn-hangzhou/instances/images可能需要自行登录,找到他的办法就是进入个人控制台
然后在打开的页面搜索想要的镜像,我这里使用的镜像地址为
registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g第二步,切到我们的cmd终端拉取镜像
可以看到很大,如果网速不佳的可能会停一会,但是不要担心已经下载的不会重新下载的
等到下载完毕,执行docker images查看镜像
可以看到我们的镜像已经被下载完毕,并且及其的大......在所难免
第三步,创建容器
命令为
docker run -d -p 1521:1521 --name oracle registry.cn-hangzhou.aliyuncs.com/helowin/oracle_11g这里解释下这条命令的构成
docker run 就是创建容器
而-d 参数是指后台运行容器,并返回容器ID;
-p 是将主机端口和容器端口映射
--name就是给容器起个名字
oracle后面代表的就是我们的镜像
执行后会给我们返回一个id,即我们的容器id
docker ps查看我们的容器运行状况,可以看到我们的容器已经开始运行
第四步,操作容器
首先介绍几个命令
#运行容器
docker start $容器名 or $容器id #成功后返回容器名
#停止容器
docker stop $容器名 or $容器id #同理
#删除容器
docker rm $容器名 or $容器id 通过这几个命令可以完成对容器的创建,运行,停止,销毁操作
上面已经创建了一个容器oracle,那我们怎么进行oracle操作呢,怎么打开我们亲爱的Mr.Sqlplus呢
这里提供的思路是先进入容器系统在进行sqlplus的操作
这里使用的是exec进入容器,其他方式详见
利用exec进入容器的具体命令为
docker exec -it oracle bash运行完毕看到这个$是不是很激动
然后通过oracle用户进入
这里提一下为什么要用su - oracle 而不是 su oracle
因为su oracle 只改变用户而不改变环境变量,没有环境变量我们切用户的意义也就不存在了
登陆完毕之后执行
echo $ORACLE_HOME发现用户变量存在
再执行
sqlplus / as sysdba结果:
可以成功登陆执行sql语句了
至此,我们已经可以开始通过docker 练习oracle的一些操作了
但是,但是!操作到这里有可能很多朋友要说了
“每次都要敲这么多命令才能到达sqlplus的彼岸,这么多命令记都记不住~那要docker的意义在什么地方啊?”
为了解决很多这方面的疑惑,再加上有些天生对黑框框恐惧的同学,这里我使用了navicat for oracle 来解决这个问题。
首先第一步,下载一个navicat for oracle
https://www.navicat.com.cn/download/direct-download?product=navicat_ora_cs_x64.exe&location=2这个软件不免费但是很好用,大家有条件的可以支持一下,没条件的可以私信我要破解版
第二步,安装完毕之后,新建连接
这里的连接名随意起一个
主机:0.0.0.0
端口:1521(跟我们之前的创建容器绑定的宿主端口有关)
SID:helowin 这里我的是这个,
你可以通过sqlplus运行sql语句进行查询
select instance_name from V$instance;查询结果
用户名我们先查询一下有什么用户
select username from dba_users然后再根据用户名改密码
alter user system identified by 123456;操作完毕之后
点击确定连接,发现顺利连接上oracle
从此告别了黑框框,可以每天写数据甚至可以尝试一下删库了呢(删了之后再创建一个容器就可以)
但是我们有一些数据需要在容器被删除之后也要保存那该怎么办呢?下篇文章会帮你解决这个问题!