docker中多个容器相互访问的端口问题

假如docker中有一个tomcat,和一个nginx。

bash 复制代码
#创建tomcat容器
docker run -d --name tomcat -p 9081:8080 tomcat:8-jdk8

#创建nginx容器
docker run -d --name nginx -p 9080:8080 nginx:latest

那么当:

  1. 在容器外访问tomcat时,需要使用http://localhost:9081来访问tomcat。

  2. 在nginx中,需要使用proxy_pass http://tomcat:8080来访问tomcat。

前提是两者在同一个docker网络中

bash 复制代码
# 创建一个自定义网络
docker network create my_network

# 确保两个容器在同一个网络中 
docker network connect tomcat
docker network connect nginx

即容器内互相访问时,使用非映射端口,容器外部访问时,使用映射端口。

相关推荐
蝎子莱莱爱打怪2 天前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
碳基沙盒2 天前
OpenClaw 多 Agent 配置实战指南
运维
小p3 天前
docker学习7:docker 容器的通信方式
docker
小p3 天前
docker学习5:提升Dockerfile水平的5个技巧
docker
小p3 天前
docker学习3:docker是怎么实现的?
docker
小p4 天前
docker学习: 2. 构建镜像Dockerfile
docker
小p5 天前
docker学习: 1. docker基本使用
docker
蝎子莱莱爱打怪5 天前
Centos7中一键安装K8s集群以及Rancher安装记录
运维·后端·kubernetes
崔小汤呀5 天前
Docker部署Nacos
docker·容器
缓解AI焦虑5 天前
Docker + K8s 部署大模型推理服务:资源划分与多实例调度
docker·容器