【docker】Mac系统用docker安装Oracle
前言:
docker这门技术可大可小。大可以给微服务提供支持,小可以给个人提供方便。
此处个人使用场景:Oracle数据库服务端不支持Mac系统,又不想在本机安装虚拟机。
正文:
零、开局一张图:
本篇文章主要就是搭建了这么一个简单的容器,用以入门。

一、Mac系统安装Docker
brew cask install docker
接着,注册docker用户名/密码(此处可能需要高墙梯子)。
docker info
查看docker当前信息:
Containers: 4
Running: 0
Paused: 0
Stopped: 4
Images: 4
Server Version: 18.09.0
Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: 468a545b9edcd5932818eb9de8e72413e616e86e
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
seccomp
Profile: default
Kernel Version: 4.9.125-linuxkit
Operating System: Docker for Mac
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 1.952GiB
Name: linuxkit-025000000001
ID: 7ZF7:KJ5Z:5WFN:76HA:NNPO:O3YG:JVT4:NRJW:JQAM:6GON:7RQN:BEPC
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
File Descriptors: 24
Goroutines: 50
System Time: 2018-12-25T02:37:39.9992359Z
EventsListeners: 2
HTTP Proxy: gateway.docker.internal:3128
HTTPS Proxy: gateway.docker.internal:3129
Registry: https://index.docker.io/v1/
Labels:
Experimental: true
Insecure Registries:
127.0.0.0/8
Registry Mirrors:
https://registry.docker-cn.com/
Live Restore Enabled: false
Product License: Community Engine
显示安装了4个镜像(Image)分别是tomcat、mysql及oracle(此处还有1个none镜像(后补充))
xionghaibodeMacBook-Pro:~ haibo.xiong$ docker image ls -a
REPOSITORY TAG IMAGE ID CREATED SIZE
haibofaith/tomcat v0 6dfa30674978 7 days ago 562MB
<none> <none> 48dd385504b1 2 weeks ago 475MB
mysql 5.6 a876cc5d29e4 5 weeks ago 256MB
sath89/oracle-12c latest ee3351d51185 4 months ago 5.7GB
4个容器(Container)2个tomcat/1个mysql/1个oracle
xionghaibodeMacBook-Pro:~ haibo.xiong$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7f242596cdf6 haibofaith/tomcat:v0 "/bin/bash" 2 days ago Exited (255) 38 hours ago 0.0.0.0:8088->8080/tcp tomcat-two
1254def33dab mysql:5.6 "docker-entrypoint.s…" 2 days ago Exited (255) 38 hours ago 3306/tcp mysql-5.6
b17291007be2 sath89/oracle-12c:latest "/entrypoint.sh " 3 days ago Exited (137) 2 days ago oracle
2a13d2ad1aa2 haibofaith/tomcat:v0 "catalina.sh run" 3 days ago Exited (143) 2 days ago haibotomcat
设置中国区docker hub mirror:加速从docker hub上拉取镜像的过程。

二、Docker中拉取Oracle镜像:
1、登录docker;
sudo docker login
2、查找docker hub中oracle可用镜像;
docker search oracle
3、拉取docker镜像到本地。可通过docker image ls查看已拉取到本地的镜像。
docker pull sath89/oracle-12c
三、Oracle镜像生成Oracle容器:
1、生成docker容器:(查看容器id命令如:docker ps -a)
docker run -h "oraclehost" --name "oracle" -d -p 1521:1521 sath89/oracle-12c
-h "oracle":指定容器的hostname为oracle
--name "oracle":将容器命名为oracle
-d:在后台运行
-p: 端口映射,格式为:主机(宿主)端口:容器端口
2、进入容器的控制台:(其中332e866caa66是容器id)
docker exec -it 332e866caa66 /bin/bash
进入容器的bash
-t:在新容器内指定一个伪终端或终端。
-i:允许你对容器内的标准输入 (STDIN) 进行交互。
四、登录Oracle数据并导入数据:
sqlplus system/oracle
修改system密码:
alter user system identified by 123456
创建一个新oracle用户并授权:
创建一个新的oracle用户
create user haibo identified by 123456
给新建用户赋予dba权限
grant dba to haibo;
导入已经存在的数据库,先复制数据库到docker容器中(不推荐此种方式,以后会采用将数据挂在宿主机的方式)
拷贝已经存在dmp数据库
docker cp /Users/haibo.xiong/IdeaProjects/jeecg/jeecg/docs/jeecg_3.8_oracle11g.dmp 0934887386c4:/home/
进入容器用imp命令导入已经存在的数据库:
root@oraclehost:/# imp haibo/123456 file=/home/jeecg_3.8_oracle11g.dmp ignore=y full=y
宿主机测试连接:显示连接成功。

更多推荐
所有评论(0)