在运行的 Docker 中修改映射端口

起因是想在 OpenClaw 新增 Chatgpt 模型,但是认证需要本地的1455端口。现在的网络拓扑有点复杂:

  • 我访问实验室的服务器是通过自己搭建的 VPN 访问的,我本地认证访问 1455 端口首先要映射到服务器的宿主机。
  • OpenClaw 容器没有启动 1455 端口映射,我在宿主机也没办法访问容器的 1455 端口。

所以一共需要四跳:

  • 本地流量到我的公网服务器。
  • 公网服务器到我在实验室的旧电脑。
  • 旧电脑到实验室的内网服务器。
  • 内网服务器到 Docker 内的龙虾。

前三跳都比较简单,属于 VPN。虽然是 1455 端口的流量,但是可以通过 SSH 建立隧道。

但是如何从宿主机到 Docker 呢?我其实一开始没有开启 1455 的映射,有两种方法:

  • 新建一个转发的 Docker 容器 A,与我们的目的容器 B 拉进同一个网络,然后在建立容器 A 的是偶开启端口映射。但是这样不行,因为容器 B 的监听是 127.0.0.1 而不是 0.0.0.0。
  • 修改配置。

正式操作

在正式操作前,必须关闭 Docker 服务,否则内存中的配置会覆盖配置文件。

1
2
sudo systemctl stop docker
sudo systemctl stop docker.socket

查看容器的ID:

1
ls /var/lib/docker/containers

修改配置:

1
vim /var/lib/docker/containers/c8b2bf675f56d158c57842cb04e23ee33fb1a36c6de0f862be940e2329069ac8/hostconfig.json

新增:

1
"1455/tcp": [{"HostIp": "","HostPort": "1455"}]

继续修改配置:

1
vim /var/lib/docker/containers/c8b2bf675f56d158c57842cb04e23ee33fb1a36c6de0f862be940e2329069ac8/config.v2.json

新增:

1
"1455/tcp": {}

重启 Docker:

1
2
sudo systemctl start docker.socket
sudo systemctl start docker

测试:在容器内部临时创建 Http Server 服务。

image.png

在本地访问。

image.png

在运行的 Docker 中修改映射端口
https://d4wnnn.github.io/2026/03/16/Notion/在运行的 Docker 中修改映射端口/
作者
D4wn
发布于
2026年3月16日
许可协议