首页 > 解决方案 > 如何检查 docker linux 容器中正在运行哪些 Oracle 数据库实例?

问题描述

如何检查 docker 容器中正在运行哪些 Oracle 数据库实例?

标签: dockeroracle11g

解决方案


问题标题不足以理解您的问题。我们需要更详细的信息:您的环境是什么?使用什么软件?你在尝试什么?...没有这些信息,就不可能给出完全适合您问题的答案。无论如何,我会尽力给你一些帮助,但你应该澄清你的问题。

一般来说,Docker的概念是有一个单一的所以在一个设计良好的容器中不应该有多个实例。根据您拥有的软件和想要接收的信息,查看Dockerfiledocker-compose文件。

如果您无权访问它们并且容器正在您有权访问的系统上运行,则容器内的外壳可能会有所帮助。用于docker ps找出所需容器的名称。然后用于docker exec -it <container-name> sh在这些容器中获取交互式外壳。如果这有效,您将认识到您的命令提示符将更改为另一个主机:

root@nashost:~# docker exec -it mariadb bash
root@0c4481588ffe:/#

0c4481588ffe是容器 ID。您现在可以在容器内执行命令,例如ps找出正在运行的进程:

root@0c4481588ffe:/# ps -guax
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
mysql        1  0.0  0.9 2978584 322248 ?      Ssl  Mar12   5:51 mysqld
root       620  0.0  0.0  18508  2296 ?        Ss   18:34   0:00 bash
root       636  0.0  0.0  34400  1804 ?        R+   18:34   0:00 ps -guax

我们还可以使用允许我们查询数据库的 CLI 工具(例如显示所有现有的数据库、表等):

root@0c4481588ffe:/# mysql -u root -p
Enter password:

这个例子来自 MariaDB(MySQL fork),因为我的测试机器上没有 Oracle 数据库。但是您可以使用 Oracle 的 CLI 工具执行类似的操作。


推荐阅读