当Docker运行碰上“连接被重置”

当遇到Docker运行中提示'连接被重置',通常是端口映射错误。本文记录了如何查看Docker开放的端口,以及如何修改本地映射端口以解决问题。通过`docker run`命令的选项,如 `-p` 来指定端口映射,确保与容器内开放端口一致。同时,介绍了`ss`命令用于检查端口状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


0x00 前言(跳过)

事件的起因是我在安装测试环境镜像之后,去访问页面,发现无论我怎么尝试,总是提示我 连接已经被重置,虽然只是一个端口映射问题,但第一次遇见这种情况,依旧浪费了很多时间去搜索各种文章才决绝,特在此记录。
在这里插入图片描述


0x01 正文

0x01.1 查看 docker 开放的端口

  • 连接被重置的原因是由于端口映射除了问题,即:本地映射的 docker 端口与其本身开放的端口不一致。如:docker 开放的端口是 8080,因为漏看的缘故,在拉取下来第一次运行时,将端口映射为了80端口,这就会导致“连接被重置”的问题。
  • 如果你想确认 docker 本身开放的端口是什么,可以通过以下操作查看:
    • 先进入 docker 容器 :docker exec -it [dockerId] bash
    • 然后通过命令:ss -ntl 查看 docker 开放的端口。
      在这里插入图片描述
    • 可以看到本地开放端口为 8080 。

0x01.2 修改本地映射的 docker 端口

  • 先将正在运行的未修改的 docker 停止运行,并删除:
    • docker stop [dockerId]
    • docker rm [dockerId]
  • 然后重新运行并映射 docker
    • docker run -d -p [ip地址][本地端口]:[docker开放的端口] 镜像地址,例:
      在这里插入图片描述
    • ip地址不加的话默认是 0.0.0.0(127.0.0.1即本机环回地址)
  • docker 已启动,尝试访问页面,成功。
    在这里插入图片描述

0x02 相关命令的参数

0x02.1 docker run 的 OPTIONS

  • OPTIONS说明:(黄标为常用选项
    • -a stdin: 指定标准输入输出内容类型,可选 STDIN/STDOUT/STDERR 三项;
    • -d: 后台运行容器,并返回容器ID;
    • -i : 以交互模式运行容器,通常与 -t 同时使用;
    • -P: 随机端口映射,容器内部端口随机映射到主机的端口
    • -p: 指定端口映射,格式为:主机(宿主)端口:容器端口
    • -t : 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
    • –name=“nginx-lb”: 为容器指定一个名称;
    • –dns 8.8.8.8: 指定容器使用的DNS服务器,默认和宿主一致;
    • –dns-search example.com: 指定容器DNS搜索域名,默认和宿主一致;
    • -h “mars”: 指定容器的hostname;
    • -e username=“ritchie”:设置环境变量;
    • –env-file=[]: 从指定文件读入环境变量;
    • –cpuset=“0-2” or --cpuset=“0,1,2”: 绑定容器到指定CPU运行;
    • -m:设置容器使用内存最大值;
    • –net=“bridge”: 指定容器的网络连接类型,支持 bridge/host/none/container: 四种类型;
    • –link=[]: 添加链接到另一个容器;
    • –expose=[]:开放一个端口或一组端口;

0x02.2 ss 常用 OPTIONS

  • OPTIONS说明:
    • -h: --help 帮助
    • -V:–version 显示版本号
    • -t : --tcp 显示 TCP 协议的 sockets
    • -u:–udp 显示 UDP 协议的 sockets
    • -x: --unix 显示 unix domain sockets,与 -f 选项相同
    • -n: --numeric 不解析服务的名称,如 “22” 端口不会显示成 “ssh”
    • -l : --listening 只显示处于监听状态的端口
    • -p: --processes 显示监听端口的进程(Ubuntu 上需要 sudo)
    • -a: --all 对 TCP 协议来说,既包含监听的端口,也包含建立的连接
    • -r : --resolve 把 IP 解释为域名,把端口号解释为协议名称
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值