You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

安装Shipyard遇端口占用问题:2375端口被dockerd占用求助

Fixing Shipyard Deploy Port Conflict (2375 Taken by dockerd)

Got it, let's work through this port conflict issue step by step. The problem is straightforward: Shipyard's proxy container tries to bind to port 2375, but your Docker daemon (dockerd) is already using that port for its remote API. Here are three practical solutions to get Shipyard up and running:

Solution 1: Change Shipyard Proxy's Port

The easiest fix is to tell Shipyard to use an unused port instead of 2375. You can do this either by editing the deployment script or passing an environment variable on the fly:

  1. Modify the deploy.sh script:
    Open the script in your favorite editor, look for lines defining SHIPYARD_PROXY_PORT or hardcoding 2375. Change the port to something unused (like 2376):
    # Example line in deploy.sh, update the default port value
    SHIPYARD_PROXY_PORT=${SHIPYARD_PROXY_PORT:-2376}
    
    Save the file and re-run the deployment:
    ./deploy.sh
    
  2. Or set the variable temporarily:
    No need to edit the script—just pass the port when running it:
    SHIPYARD_PROXY_PORT=2376 ./deploy.sh
    

Solution 2: Reconfigure dockerd to Listen on a Different Port

If you need to keep using Docker's remote API but on another port, adjust dockerd's configuration:

  1. Edit Docker's daemon config file (usually /etc/docker/daemon.json). Create it if it doesn't exist:
    sudo nano /etc/docker/daemon.json
    
  2. Add or update the hosts entry to use a new port (e.g., 2376):
    {
      "hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2376"]
    }
    

    Note: If you're using systemd to manage Docker, check for any -H flags in the systemd service file (like /lib/systemd/system/docker.service) and remove them—they'll conflict with the daemon.json settings.

  3. Restart Docker to apply changes:
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  4. Verify dockerd is now listening on the new port:
    netstat -ntple | grep dockerd
    

Once confirmed, run Shipyard's deploy.sh again.

Solution 3: Disable dockerd's Remote API Listener (If Unneeded)

If you don't need to access Docker's API remotely (only using the local Unix socket), turn off the TCP listener entirely:

  1. Edit /etc/docker/daemon.json and set hosts to only use the Unix socket:
    {
      "hosts": ["unix:///var/run/docker.sock"]
    }
    
  2. Restart Docker:
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  3. Check that port 2375 is no longer in use:
    netstat -ntple | grep 2375
    

Then run ./deploy.sh as you originally intended.

After applying any of these fixes, verify Shipyard starts correctly by checking the running containers:

docker ps

You should see the shipyard-proxy container running without port conflict errors.

内容的提问来源于stack exchange,提问作者Lily

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:55:38