oracle docker端口冲突



需要您的帮助。

在19.3e上创建了两个容器,但当我同时打开这两个容器时发生了冲突。。。

docker run -d --name oracle1931 -p 1522:1521 -e ORACLE_PWD=password123 -v oradata:/opt/oracle/oradata test/oracledb:latest
docker run -d --name oracle1931 -p 1522:1521 -e ORACLE_PWD=password123 -v oradata:/opt/oracle/oradata test/oracledb:latest
CONTAINER ID   IMAGE                      COMMAND                  CREATED         STATUS                            PORTS                    NAMES
47b792580c29   test/oracledb:latest   "/bin/sh -c 'exec $O…"   3 minutes ago   Up 3 minutes (health: starting)   0.0.0.0:1523->1523/tcp   oracle193
88d4d0b326ae   test/oracledb:latest   "/bin/sh -c 'exec $O…"   3 hours ago     Up About an hour (healthy)        0.0.0.0:1522->1521/tcp   oracle1931

我的第二个容器无法处理以下内容,即使它被重定向到主机端口1522。想法?

Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))
Services Summary...
Service "ORCLCDB" has 1 instance(s).
Instance "ORCLCDB", status BLOCKED, has 1 handler(s) for this service...

如果我理解正确,则显示问题的第二个容器命名为"oracle193";(我认为,根据容器的健康检查状态和使用期限(,如果这一切都是真的,那是因为容器绑定到主机上的1523,并且正在侦听容器内的端口1523,这是错误的端口,oracle使用端口1521(这就是为什么名为"oracle1931"的容器显示为正常运行3小时的原因(再次因为尽管主机端口是1522,但是被监听的容器端口是1521。

在";Oracle Net Listener":

https://docs.oracle.com/en/database/oracle/oracle-database/19/rilin/port-numbers-and-protocols-of-oracle-components.html#GUID-D168F70C-BECE-4F9A-B616-D9103A35F1FF

这有助于解决问题,请记住,当打开容器并使用docker绑定到端口时,第一个端口在主机上,冒号之后的第二个端口是从容器内部侦听的端口。

参考docker官方文件:

https://docs.docker.com/config/containers/container-networking/

干杯

相关内容

  • 没有找到相关文章

最新更新