Loading

mac m1使用docker安装oracle

mac m1使用docker安装oracle数据库

本学期开始学习数据库原理,老师课上讲到课堂作业使用的是oracle 11g,然而我去官网却发现只有Windows和Linux版本的,并没有发现macOS的安装方法。在网上了解到,可以利用docker来安装部署,故尝试。

一.docker安装

macOS目前主流的安装方法有两种,利用homebrew安装或者直接docker官网下载dmg文件安装。

1.homebrew安装

#安装homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

#利用homebrew安装docker
brew cask install docker

2.官网下载

顾名思义,去下载安装就完事了。

二.docker换源

docker默认源在国外,在国内访问下载很慢,所以将其换为国内的源。

1.打开docker

在启动台中找到小鲸鱼图标的docker,并打开它。

image-20230220133909873

2.顺手改一下资源分配

image-20230220134048501

image-20230220134100985

可根据自己的情况修改docker可分配资源。

3.换源

与网上绝大部分教程(讲Windows如何换源的)不同的是,macOS储存docker文件的路径在:

/Users/{YourUserName}/Library/Containers/com.docker.docker/Data

先在终端中cd打开该文件夹,然后使用vim打开daemon.json文件

cd /Users/{YourUserName}/Library/Containers/com.docker.docker/Data
vi daemon.json

image-20230220135010946

在该文件中加入国内源的配置:

{
    "registry-mirrors" : [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://cr.console.aliyun.com",
    "https://mirror.ccs.tencentyun.com"
  ]
}

image-20230220135133470

然后:wq保存退出

最后重启docker

image-20230220135752694

三.从镜像源中下载oracle镜像

在直接根据网上教程使用以下指令

docker pull alexeiled/docker-oracle-xe-11g

安装时,出现了以下错误,未找到或者未登陆。

image-20230220140327314

所以在此又去注册了一个docker账号并登陆

image-20230220140346962

image-20230220140540246

然而在登陆后依旧无法使用上面那个指令拉取,于是再找方法。

1.搜索镜像

先使用指令搜素远程仓库中的Oracle镜像

sudo docker search docker-oracle-xe-11g

2.拉取镜像

选择一个star最多的镜像进行拉取

docker pull deepdiver/docker-oracle-xe-11g

image-20230220141632551

3.拉取成功

静候下载,挺大的(2.7Gb)

image-20230220140909057

四.启动镜像为容器

docker run -d -p 1521:1521 --name oracle11g deepdiver/docker-oracle-xe-11g

然而,又出现了警告:

image-20230220145851584

我猜测出错的原因应该是苹果的m1芯片架构不同导致的,去网上寻找了多种解决方案后,发现了以下方法可行:

#在环境变量中设置默认使用linux/amd64平台
export DOCKER_DEFAULT_PLATFORM=linux/amd64
#重新启动镜像为容器(然后在此之前启动过并报了waring的,需要先将之前启动的容器删除
docker run -d -p 1521:1521 --name oracle11g deepdiver/docker-oracle-xe-11g

五.进入容器并建立连接

1.查看容器

docker ps

image-20230220151619635

记下这个容器ID

2.进入容器

docker exec -it {容器ID} /bin/bash

3.进入Oracle

sqlplus system/oracle

然而,又出现了新的问题:连接不上。

image-20230220151853200

在网上查阅资料后发现,依旧是m1芯片架构问题所导致的(oracle为啥不适配!!!)

解决方案如下:

利用Colima运行转译的虚拟机

#使用homebrew安装colima
brew install colima
#启动colima
colima start --arch x86_64 --memory 4

(此处我的docker崩溃了无法打开,在重装docker后使用原来的流程就可以正常操作了)

在解决问题后,成功打开了oracle数据库

image-20230220203630181

4.创建用户授予权限

在上面出现的命令行中输入指令创建用户:

CREATE USER YS IDENTIFIED BY 123456;
#YS是用户名,123456是密码

授权:

GRANT CONNECT, RESOURCE, DBA TO YS;
#YS是用户名

image-20230220205026252

六.后话

至此,在我的m1 macbook air上成功地部署了oracle。什么也不会开始看网络上的教程部署,干了半天,白天干到黑夜(后面终端都黑了),可以说,这是相当麻烦,由于架构问题导致了很多问题(oracle为什么不适配!!!)。

总之,最后终于是成功部署了,虽然进去之后两眼一抹黑,啥也不会操作,甚至找不到怎么关闭它……

posted @ 2023-02-24 16:38  YellowSeaa  阅读(1734)  评论(3编辑  收藏  举报