mac安装docker后,pull下来的镜像使用命令启动,为什么在容器中的镜像无法启动?
比如通过命令docker pull deadok22/docker-oracle-xe-11g
此时 oracle已经被安装到我们docker
下载完成后通过命令启动容器镜像:docker run -h "oracle" --name "oracle" -d -p 49160:22 -p 49161:1521 -p 49162:8080 deadok22/docker-oracle-xe-11g
49160是我们用ssh连接对应的端口
49161是我们连接sqlplus对应的端口
49162是我们连接oem对应的端口
通过命令查询:docker ps -a,发现oracle容器的状态为:Exited (0) 11 hours ago,它并没有运行。
主要原因是:Docker容器后台运行,就必须有一个前台进程。主线程结束,容器会退出。
我们要把启动命令改为:docker run -dit -h "oracle" --name "oracle" -d -p 49160:22 -p 49161:1521 -p 49162:8080 deadok22/docker-oracle-xe-11g
执行命令后问题即可解决。
接下来我们启动容器 并进入sqlplus界面
使用docker exec -it <CONTAINER> <COMMAND>:在容器里执行命令,并输出结果
docker exec -it 0deb75d61474 /bin/bash
其中 0deb75d61474 是我们的containerID
可以通过docker ps查询容器信息
接下来我们可以进入sqlplus界面
username: system
password: oracle
SYS的密码oracle