前提条件

  • 已安装 Docker 环境
  • 知道目标容器名称或 ID

操作步骤

  1. 创建自定义网络(如果已有请忽略)

    # 创建支持固定IP的自定义网络
    docker network create --driver bridge \
      --subnet 172.30.0.0/24 \  # 自定义网段
      --gateway 172.30.0.1 \    # 网关地址
      my-fixed-network          # 网络名称
  2. 停止目标容器

    docker stop 容器名称/ID
  3. 重新启动容器并指定固定 IP

    docker run -d \
    --name 容器名称 \
    --network my-fixed-network \  # 使用自定义网络
    --ip 172.30.0.10 \           # 指定固定IP(需在自定义网段内)
    -p 主机端口:容器端口 \       # 端口映射(按需添加)
    -v 本地目录:容器目录 \        # 数据挂载(按需添加)
    --restart always \ 			 # 自动重启
    镜像名称:标签                 # 容器使用的镜像
  4. 验证 IP 是否固定

    # 查看容器IP
    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名称
    
    # 重启容器后再次检查
    docker restart 容器名称
    docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' 容器名称

注意事项

  • 固定 IP 必须在自定义网络的网段范围内

  • 同一网络内的 IP 不能重复

  • 重启 Docker 服务或容器,IP 保持不变

  • 若需修改 IP,需删除容器后重新创建并指定新 IP

  • 方法:查看指定网络中的所有 IP 分配

    1. 先列出所有网络,确认目标网络名称
      执行以下命令获取网络列表(找到你要查询的网络名称,如 dify_defaultollama-network):

      docker network ls
    2. 查看该网络的详细信息(包含 IP 分配)
      inspect 命令查看网络详情,重点关注 Containers 部分,里面会列出所有连接到该网络的容器及其 IP:

      # 替换为你的网络名称(如 dify_default)
      docker network inspect 网络名称