-
安装Docker
-
下载完成后,我们得到
Docker.dmg
文件,点击拖动到application
文件夹进行安装。
-
注册一个Docker账号
注意:如果不登录Docker,使用docker pull命令是可能会报错 Error response from daemon: pull access denied for alexeiled/docker-oracle-xe-11g, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
-
安装完成后,你就可以在launchpad中看到Docker图标,点击打开;并且点击右上角的Sing In进行登录。
-
Docker 设置国内镜像源
"registry-mirrors": [ "https://md4nbj2f.mirror.aliyuncs.com" ] 1. 阿里云容器 服务:https://cr.console.aliyun.com 2. 中国科技大学:https://docker.mirrors.ustc.edu.cn 3. Docker中国区官方镜像:https://registry.docker-cn.com 注意:本人使用Docker中国区官方镜像源,使用docker pull命令会报错 Error response from daemon: pull access denied for alexeiled/docker-oracle-xe-11g, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
-
拉取Oracle镜像
-
打开终端,登录Docker:
docker login
Authenticating with existing credentials... Login Succeeded
-
拉取Oracle 11g镜像:
docker pull alexeiled/docker-oracle-xe-11g
![](https://www.icode9.com/i/l/?n=20&i=blog/2071466/202103/2071466-20210306155311063-999972894.png)
-
-
下载完成后,启动镜像为容器
docker run -h "oraclehost" --name "oracle" -d -p 1521:1521 alexeiled/docker-oracle-xe-11g -h "oraclehost":指定容器的hostname为oracle --name "oracle":将容器命名为oracle -d:在后台运行 -p: 端口映射,格式为:主机(宿主)端口:容器端口
-
进入容器并启动Oracle
-
在终端中执行命令进入容器
docker exec -it c816db8e8d52 /bin/bash
root@oraclehost:/#
其中
c816db8e8d52
是容器id,可使用docker ps
命令获得
-
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c816db8e8d52 alexeiled/docker-oracle-xe-11g "/bin/sh -c /start.sh" 10 minutes ago Up 10 minutes 0.0.0.0:1521->1521/tcp, 8080/tcp oracle
```
-
进入容器后,使用如下命令登录:(使用普通身份登陆)
sqlplus system/oracle
root@oraclehost:/# sqlplus system/oracle SQL*Plus: Release 11.2.0.2.0 Production on Sat Mar 6 07:20:06 2021 Copyright (c) 1982, 2011, Oracle. All rights reserved. ERROR: ORA-28002: the password will expire within 7 days Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production SQL>
-
查看数据库用户:
SQL> select * from all_users; USERNAME USER_ID CREATED ------------------------------ ---------- --------- XS$NULL 2147483638 28-AUG-11 APEX_040000 47 28-AUG-11 APEX_PUBLIC_USER 45 28-AUG-11 FLOWS_FILES 44 28-AUG-11 HR 43 28-AUG-11 MDSYS 42 28-AUG-11 ANONYMOUS 35 28-AUG-11 XDB 34 28-AUG-11 CTXSYS 32 28-AUG-11 OUTLN 9 28-AUG-11 SYSTEM 5 28-AUG-11 USERNAME USER_ID CREATED ------------------------------ ---------- --------- SYS 0 28-AUG-11 12 rows selected. SQL>
-
使用Navicat创建连接
-
使用
docker container ls
命令,查看端口情况docker container ls
docker container ls CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c816db8e8d52 alexeiled/docker-oracle-xe-11g "/bin/sh -c /start.sh" 35 minutes ago Up 35 minutes 0.0.0.0:1521->1521/tcp, 8080/tcp oracle
可以看到1521端口被映射到容器的1521端口,1521被映射带容器的1521端口。我们访问本机的1521端口即可在SQL管理工具访问。
-
-
修改system密码
alter user system identified by 您的新密码;
-
退出Oracle
exit
SQL> exit Disconnected from Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production root@oraclehost:/#
-
关闭oracle服务和开启oracle服务
docker stop oracle docker start oracle