本文用来记录我的docker for mac之旅。
一、获取docker
https://docs.docker.com/docker-for-mac/install/
从以上链接可以获取到Mac版本docker的下载地址,安装好之后,Mac的菜单栏中将会出现docker图标。
二、Hello Docker
打开一个terminal,在其中输入
docker run hello-world
此时系统会拉取测试镜像。
但是我这边系统却报错了。提示如下:
docker: Error response from daemon: Get https://registry-1.docker.io/v2/library/hello-world/manifests/latest: unauthorized: incorrect username or password.
See ‘docker run –help’.
百思不得其解。后来却发现,docker登录的时候要使用docker id,而不要使用email即可。
重新登录可点击docker图标,也可在terminal下输入:
docker login
重新登录即可。
三、Hello Oracle
我们使用docker的主要目的就在于快速的构建所需要的基础环境,例如我现在需要一个Oracle环境,那我该如何搞呢,非常简单,我们首先需要pull一个Oracle的docker镜像。
docker pull wnameless/oracle-xe-11g
上面这个镜像提供了一个Express版本的Oracle。
详情:https://hub.daocloud.io/repos/e06fc13e-3adb-4a9f-b44a-86a55df02c5a
拉取完成之后,我们仅需要简单的执行:
docker run -d -p 1521:1521 –name oracle wnameless/oracle-xe-11g
我们的Oracle就在本地跑起来咯 ~
hostname: localhost port: 1521 sid: xe username: system password: oracle
这个Oracle的相关信息如上所示。
但是,当我在macOS下面使用Navicat连接数据库时却报如下错误
ORA-21561: OID generation failed
一开始以为是docker镜像有问题,尝试了好几个镜像都一样的错误,后来Google了下,发觉这个问题都是跟主机名有关,尝试修改镜像里的主机名,发现还是一样的错误,后来想到,会不会是主机的问题?于是执行:
hostname
获取到macOS的主机名,之后将其配置到
/etc/hosts
中127.0.0.1 后,问题解决,嘿嘿。
进阶:
上面的操作做完以后,会发现数据并没有被持久化。所以我们更改下容器启动参数:
docker run -d -p 1521:1521 -v /opt/docker/oracle/data:/u01/app/oracle –name oracle wnameless/oracle-xe-11g
这样就可以把/opt/docker/oracle/data映射进docker的/u01/app/oracle中去。
你好,我因为工作需要所以要装一个专用软件,但是装上总是打不开,我也是够够够够的,三天了,重装卸载n次,已经快吐了,我也快疯了,如果你有空的话加我微信或者qq帮我看下什么问题好吗,因为它总是弹出一堆英语。