前置
假设主机是ubuntu,且仅内部访问,ip是:
192.168.180.200Ubuntu 的 Docker 配置可直接写成:
sudo systemctl edit docker填写:
[Service]
ExecStart=
ExecStart=/usr/bin/dockerd \
-H unix:///var/run/docker.sock \
-H tcp://192.168.180.200:2375 \
--containerd=/run/containerd/containerd.sock注意必须
写两次Service
然后执行:
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl status docker确认监听:
sudo ss -lntp | grep 2375预期:
LISTEN 0 4096 192.168.180.200:2375Windows PowerShell 测试:
Test-NetConnection 192.168.180.200 -Port 2375再测试 Docker API:
Invoke-RestMethod http://192.168.180.200:2375/versionWindows 或 IDEA 中配置以下环境变量:
DOCKER_HOST=tcp://192.168.180.200:2375
TESTCONTAINERS_HOST_OVERRIDE=192.168.180.200
TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE=/var/run/docker.sockPowerShell 临时设置:
$env:DOCKER_HOST="tcp://192.168.180.200:2375"
$env:TESTCONTAINERS_HOST_OVERRIDE="192.168.180.200"
$env:TESTCONTAINERS_DOCKER_SOCKET_OVERRIDE="/var/run/docker.sock"然后直接执行:
mvn test也可以先验证 Docker CLI:
docker -H tcp://192.168.180.200:2375 ps有一点需要注意:VMware 的 NAT 网络通常允许宿主机直接访问虚拟机,所以这个方案可以正常使用。不要将 Docker 监听地址改为:
0.0.0.0:2375固定绑定 192.168.180.200 更安全。若 Ubuntu 开启了 UFW,可以仅允许 Windows 宿主机访问 2375:
sudo ufw allow from <Windows宿主机在VMware网段的IP> to 192.168.180.200 port 2375 proto tcp接下来 Testcontainers 创建的 MySQL,Windows Spring Boot 会通过类似下面的地址连接:
jdbc:mysql://192.168.180.200:随机映射端口/test_db而不是 localhost。这正是 TESTCONTAINERS_HOST_OVERRIDE 的作用。
作者:张三 创建时间:2026-07-24 12:02
最后编辑:张三 更新时间:2026-07-24 12:03
最后编辑:张三 更新时间:2026-07-24 12:03