Docker部署Oracle容器端口未暴露问题求助
问题排查与解决
核心问题:docker run命令参数顺序错误
你把-p参数放在了镜像名称后面,这会被Docker当成容器启动时要执行的命令/参数,而非运行容器的选项,导致端口映射完全没生效。Docker run的语法要求所有运行选项(比如-p、-d等)必须放在镜像名称之前。正确的运行命令
docker run -p 1521:1521 three-dee-local:1.1如果你想让主机随机分配端口映射到容器1521,也可以用
docker run -p 1521 three-dee-local:1.1,但同样要把-p放在镜像名前面。验证方法
执行正确命令后,用docker ps查看容器列表,就能看到PORTS列显示出正确的端口映射;再用docker inspect查看容器,1521/tcp的映射信息就会正常显示,和你用docker-compose运行的效果一致。补充说明:你Dockerfile里的
EXPOSE 1521只是声明容器会使用这个端口,本身不会自动做端口映射,必须通过-p参数在运行时明确配置映射关系。
内容的提问来源于stack exchange,提问作者Kurt
相关产品推荐
相关产品推荐

