首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将两个Docker容器的同一端口重定向到不同的端口

是通过Docker的网络功能来实现的。Docker提供了多种网络模式,包括桥接网络、主机网络、覆盖网络等,可以根据具体需求选择适合的网络模式。

在桥接网络模式下,可以使用Docker的端口映射功能来实现端口重定向。具体步骤如下:

  1. 创建两个Docker容器,并分别运行需要重定向端口的应用程序。
  2. 在创建容器时,使用-p参数指定端口映射规则。例如,假设需要将容器A的80端口重定向到主机的8080端口,将容器B的80端口重定向到主机的8888端口,可以使用以下命令创建容器:
  3. 在创建容器时,使用-p参数指定端口映射规则。例如,假设需要将容器A的80端口重定向到主机的8080端口,将容器B的80端口重定向到主机的8888端口,可以使用以下命令创建容器:
  4. 这样,当访问主机的8080端口时,请求会被转发到容器A的80端口;访问主机的8888端口时,请求会被转发到容器B的80端口。
  5. 注意,-p参数的格式为主机端口:容器端口
  6. 确保主机的防火墙或安全组规则允许流量通过指定的端口。

端口重定向的应用场景包括:

  • 在开发环境中,可以同时运行多个容器化的应用程序,并通过端口重定向来避免端口冲突。
  • 在生产环境中,可以将不同的容器服务通过端口重定向进行负载均衡,提高应用程序的可用性和性能。

腾讯云提供了一系列与Docker相关的产品和服务,包括容器实例、容器服务、容器注册表等。您可以通过以下链接了解更多信息:

请注意,以上答案仅供参考,具体的解决方案和推荐产品应根据实际需求进行选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Docker修改容器端口,容器名,映射地址

3.0、启动 docker 容器 1、Docker修改容器名 #先查看原来容器docker ps -a #查看所有的容器 #找到你要修改容器docker rename 原容器名 要修改容器名...stop docker 2.4、查找配置文件 可以去修改该容器配置有两个文件,config.v2.json/hostconfig.json 最开始让记得那个容器 id 我们先去找他文件目录,我们可以根据查找...hostconfig.json 配置文件,然后再看 id,这里我们找到了,第一个就是,进入目录 进入目录我们可以看到这两个文件 2.5、备份原有文件,如果出现问题后可以还原回去 cp -ar config.v2....json) vim config.v2.json 也是同样 8888 修改成 8899,修改完之后保存退出; 2.8、启动 docker 服务 systemctl start docker...docker 修改完映射端口后,docker ip 可能会发生变化。

1.5K20

如何修改Docker容器端口映射

可以删除原有容器,重新创建新容器 优点 简单粗暴,在测试环境用更多 缺点 如果是数据库、服务器相关容器,创建新容器,又得重新配置相关东西了 2....修改容器配置文件(重点) 暂停Docker服务 systemctl stop docker 进入 Docker 容器配置文件目录下 cd /var/lib/docker/containers/ls 容器...ID 就是文件夹名称,可通过 docker ps -aq 来查看,不过这是缩写,对照起来看就行 修改hostconfig.json vim hostconfig.json 找到之前端口,然后修改成我们想修改成什么端口...重新启动Docker服务 systemctl restart docker 启动容器 docker start 容器ID或者名字 然后就可以通过新端口进行访问了 优点 直接操作配置文件没有副作用,算简单...缺点 需要暂停 Docker 服务,会影响其他正常运行Docker容器

3K20
  • Docker - 修改容器端口映射方法

    Docker 建立好容器后,配置并不容易修改,本文记录修改建立好容器端口映射方法。...背景 已经建立好了容器,配置了初始端口映射信息 但是端口映射错了/多了/少了,需要调整容器端口映射 具体方法 方法一 当前容器通过 docker commit 命令生成镜像 通过镜像重新建立容器,建立时使用正确端口映射...好处是包治百病,正规途径 缺点就是过程繁琐,不够优雅 方法二 端口映射等容器信息都是存在某个地方,通过配置文件管理,我们仅需修改配置文件端口信息即可完成改写 以我当前 nginx.../tcp nginx 当前容器名称 nginx,CONTAINER ID是5190850b4fcc 当前端口映射了 9443:443,现在我要添加一个 9442:442 端口映射 停止容器 docker...hostconfig.json 和 config.v2.json 两个文件 修改 hostconfig.json 在查看内容时,可以发现 json 中 PortBindings 键值对应内容即是端口映射

    2.8K10

    Docker(33)- 如何修改 docker 容器端口映射

    tomcat:7 创建容器时,指定了端口映射(-p) 如果容器运行之后发现端口需要改怎么办?...当前是访问 9999 端口 删除原有容器,重新创建新容器 删除容器 docker rm -f 容器ID/名字 重新创建容器 docker run -d -p 8888:8080 -i --name tomcat7...tomcat:7 重新指定需要映射端口 优点 简单粗暴,在测试环境用更多 缺点 如果是数据库、服务器相关容器,创建新容器,又得重新配置相关东西了 修改容器配置文件(重点) 暂停 Docker...输入 ,搜索映射端口(9999) / 修改端口值就行了 修改完后 退出并保存此文件 :wq 重新启动 Docker 服务 systemctl stop docker docker start tomcat7...里端口,但实操了一遍并不需要 config.v2.json 优点 直接操作配置文件没有副作用,算简单 缺点 需要暂停 Docker 服务,会影响其他正常运行 Docker 容器 使用 docker

    1.6K10

    ssh和sftp为什么是同一端口_ssh和sftp使用不同端口

    sftp是基于ssh上实现,所以严格来说我们是无法来关闭ssh,而只是使用sftp。 ssh默认使用是22端口,当然这个端口是可以修改。...1.2 应用场景 局域网中有两批用户:一批用户:可以通过ssh登录上我们服务器 一批用户:可以使用sftp服务,但是我们不希望这些能够能通过ssh登录上来 这种情况怎么处理: 我们可以sftp用户单独分成一个组...为了满足这两批用户需求,我们可以再开一个ssh服务,命名为sftpd.service, 并新开一个端口号(22220),限制22220上ssh服务只能使用sftp服务,这里利用了ssh配置文件里面的...ssh/sftpd_config1 2Subsystem sftp internal-sftp Subsystem sftp internal-sftp -l INFO -f AUTH(推荐) 3.3 限制用户...如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站立刻删除。

    3.6K40

    Docker容器内部端口映射到外部宿主机端口方法小结

    注意: 宿主机一个端口只能映射到容器内部某一个端口上,比如:8080->80之后,就不能8080->81 容器内部某个端口可以被宿主机多个端口映射,比如:8080->80,8090->80,8099...->80 1)启动容器时,选择一个端口映射到容器内部开放端口上 -p  小写p表示docker会选择一个具体宿主机端口映射到容器内部开放网络端口上。...-P  大写P表示docker会随机选择一个宿主机端口映射到容器内部开放网络端口上。...,还可以通过宿主机iptables进行nat转发,宿主机端口映射到容器内部端口上,这种方式适用于容器启动时没有指定端口映射情况!.../p/5799210.html 容器80端口映射到dockers宿主机9998端口 [root@docker-test ~]# iptables -t nat -A PREROUTING -p

    5.7K20

    Docker】Asp.net core在docker容器端口问题

    还记得【One by one系列】一步步学习docker(三)——实战部署dotnetcore中遇到问题么?容器内部启动始终是80端口,并不由命令左右。...docker run --name container-name -p 81:5000 mywebapi 所谓知其然就要知其所以然,浅尝辄止并不是个好习惯,主要是以下几个因素共同导致了这种情况。...runtime-deps基础上构建,所以继续找到runtime-deps构建镜像Dockerfile FROM amd64/debian:buster-slim RUN apt-get update...中指定了应用终结点URL ENV ASPNETCORE_URLS=http://+:80 所以你想修改默认端口,在你Dockerfile添加如下,修改默认值即可: ENV ASPNETCORE_URLS...Docker容器最佳实践是一个容器只运行一个进程,意味着一个容器就暴露一个端口,所以去修改默认端口没有很大必要性。这里对其问题溯源只是作为一个了解.

    2.3K20

    修改Docker中nginx容器默认端口号配置

    修改nginx默认端口号 一般来说,nginx默认使用是80端口号,但是狗血是服务器上80端口号被占用了,而且使用80端口服务还不能停,这就要换端口号了。...docker run --name nginx -p 8089:8089 -d nginx 直接运行时候换成8089端口号,虽然能够运行容器但是外部仍然无法访问。...解决方案 1、进入docker 容器 docker exec -it 容器名 /bin/bash 我容器名字就叫做nginx 因此进入docker容器内部命令为 docker exec...,所以在网络允许情况下可以下载vi编辑器,下载完成后可直接在容器内部编辑 apt-get update apt-get install vim 如果没有网情况下 可以容器文件拷贝宿主机上,...5、default.conf拷贝回nginx容器docker cp /home/default.conf nginx:/etc/nginx/conf.d/ 6、重启 docker restart

    6.5K30

    通过端口来接DockerCentOS容器MySQL数据库

    宿主机(Mac)连接DockerCentOS容器MySQL数据库 #1 环境及需求 #1.1 环境 Navicat for Mac Docker -CentOS 6.9 -MySQL 5.7...#1.2 需求 在宿主机(Mac)上面远程链接Docker中CentOS容器里面的MySQL数据库 #1.3 基本配置 MySQL安装和配置,请看上一篇博客 https://blog.csdn.net.../Coxhuang/article/details/103837993 #2 开始 #2.1 创建CentOS容器 创建容器 docker run -it -p 33060:3306 centos:addmysql.../bin/bash # 命令注释: # -p: 开放端口号 # 33060:3306: 冒号前面是宿主机端口,冒号后面是容器端口,意思就是在宿主机访问33060就会映射到宿主机3306端口 ╭...正是172.17.0.2,是CentOS3306端口没有开放,不允许远程连接 #2.3 配置MySQL允许远程连接 进入MySQL mysql -u root -p 修改MySQL配置 grant all

    2.3K20

    Docker 容器已经运行情况下,如何对外暴露端口

    运维时,你可能会遇到这样问题,那就是Docker 容器已经运行情况下,我希望宿主机外程序,比如数据库客户端,能够连接容器内部端口,如数据库端口。...一旦 Docker 容器已经运行起来后,原则上是不能直接修改容器配置来新增端口。...但这样就不是原来容器了,数据可能不是实时更新。 可以通过 iptables 等工具在宿主机上手动设置端口转发规则,流量重定向容器端口。...使用 Docker 网络功能,如创建一个新网络桥接或者使用 docker network connect 容器连接到另一个网络接口,这样可以在不重启容器情况下改变网络设置。...这里分享下方法 2 具体做法:如何在宿主机上使用 iptables 设置端口转发规则可以外部请求转发到 Docker 容器端口上。

    2.3K10

    居然能修改已运行 Docker 容器端口映射?

    容器未启动? 如果你容器还没有构建时,想添加端口映射时,你只需要在创建容器时候添加 -p 参数,想添加几个端口映射就追加几个 -p 参数。...但是想修改或者添加端口时,先停止掉正在运行容器。 以下内容都是以容器 id 为 cbe26510c276 进行操作,请务必将容器 id 换成你自己需要修改容器 id。...我这里添加了两个端口映射,分别将宿主机 8502 端口以及 8505 端口映射到容器 8502 端口和 8505 端口。 HostPort 对应端口代表 宿主机 端口。...docker inspect {容器名称或者 id } # 比如: docker inspect cbe26510c276 配置符合你要求后,再次启动容器docker start {容器名称或者...整体来说,在 MacOS 上除了进入 /var/lib/docker/containers 目录时,进入方式有所不同以外,修改配置文件方式和上文一样。

    2.5K20

    这就是你日日夜夜想要docker!!!---------Docker常规操作--端口映射、数据卷管理 以及容器互联

    一、端口映射 在启动容器时候,如果不指定对应参数,在容器外部是无法通过网络来访问容器内部网络应用和服务。   ...当使用-P(大写P)标记时,Docker会随机映射一个端口到内部容器开放网络端口 1、-P随机端口 通过docker ps命令查看具体端口映射 [root@localhost opt]# docker...5、映射到指定端口任意地址 使用IP::ContainerPort格式绑定本机任意端口容器指定端口 [root@localhost opt]# docker run -itd -p 192.168.110.133...1、–link 通过虚链路连接 –link 两个容器通过映射端口进行互联 [root@localhost opt]# docker run -itd -P --name test01 centos:...(网络别名作用类似hostname,不管容器IP如何变化,都可以使用同一个别名。

    1.2K20

    如何在Ubuntu上使用Traefik作为Docker容器反向代理

    在本教程中,您将使用Traefik请求路由两个不同Web应用程序容器:Wordpress容器和Adminer容器,每个容器都与MySQL数据库通信。...我们自动端口80上所有流量重定向https入口点,以强制所有请求安全连接。 最后,添加此部分以配置TraefikLet's Encrypt证书支持: traefik.toml ......然后我们设置两个Docker标签,告诉Traefik流量引导Traefik容器主机名monitor.example.com端口:8080,从而显示监控仪表板。...traefik.port 指定Traefik用于流量路由到此容器公开端口。 使用此配置,发送到Docker主机80端口所有流量都将路由blog容器。...但是,由于我们所有流量直接导向Docker主机上端口80blog容器,因此我们需要以不同方式配置此容器,以便流量传输到adminer容器

    2.4K40

    从零一,构建你持续交付流程(四):利用Docker服务容器

    在持续交付过程中,我喜欢服务容器化,包括后端,前端都是。 当然移动端肯定就不在能容器化之列了,这个是额外要考虑。...如果你最终在生产上部署形态是rpm包,那持续交付也应该是rpm包。不保持一致持续交付,则失去了它本来应有的价值。 我更喜欢用Docker服务容器化,我觉得这样在服务管理上比较方便。...二) 接下来,我分别简单就三种模式进行阐述: 基于JDK后端服务容器化管理 基于npm前端服务容器化管理 一个后端服务+一个前端服务合并起来进行容器化管理 我需要再解释下,这个系列并不是技术教程...,不会就涉及Docker知识一步一步解释与说明。...test-backend,开放端口为8080 行9-15: 定义另一个服务test-front 具体请参阅docker compose文档。

    70440

    手把手搭建一个容器化+代理网关+可视化管理环境

    : # 开启 redirectscheme 中间件,中间件名称为 redirect-https ,该中间件可以重定向 http https ,达到强制 https 目的 -...中间件, http 请求重定向 https,即重定向到了上面配置 https-traefik 路由 - "traefik.http.routers.http-traefik.service...中间件, http 请求重定向 https,即重定向到了上面配置 https-portainer 路由 - "traefik.http.routers.http-portainer.service...Traefik 监听着 80 和 443 端口,因此服务器只需要暴露出这两个端口,其他流量请求都交由 Traefik 来代理,基于 Traefik 配置发现机制,在部署我们容器应用时只要在 Label...加上 Traefik 规则即可;对于容器应用启动停止、日志查看等使用 Portainer 绰绰有余,几乎不需要登陆服务器上操作查看。

    1.2K20
    领券