前言:

        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

宿主机测试连接:显示连接成功。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐