docker harbor goharbor/nginx-photon组件一直重启,harbor ip+port不通解决方法

docker harbor goharbor/nginx-photon组件一直重启,harbor ip+port不通解决方法

报错

docker重启之后发现goharbor/nginx-photon组件一直处于重启的状态,harbor使用的81端口也没有了,网页访问不了harbor

解决

经过排查发现可能是harbor网卡的问题,需要手动移除,

# cd /usr/local/harbor
# docker-compose down
# docker network  inspect harbor_harbor
[
    {
        "Name": "harbor_harbor",  #参数1
        "Id": "c3fd4485fc70ac39f304e1dc88e68c0292a6ed4d872bc246b47b8a1fee0c40f0",
        "Created": "2021-04-30T00:10:16.400151438+08:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.18.0.0/16",
                    "Gateway": "172.18.0.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": true,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "aa2c8463bd66f8c531e47bd81029dc4c5dde984909e0f55b56414bd4975acebe": {
                "Name": "nginx",    #参数2
                "EndpointID": "f47bbf14ced631b98270031e9b1a52e0f89789f4479b3f37c7855dd912d5119a",
                "MacAddress": "02:42:ac:12:00:02",
                "IPv4Address": "172.18.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {
            "com.docker.compose.network": "harbor",
            "com.docker.compose.project": "harbor",
            "com.docker.compose.version": "1.21.2"
        }
    }
]

# docker network disconnect -f harbor_harbor(参数1) nginx(参数2)
# docker-compose up -d

整体流程就是手动删除harbor_harbor网卡,重启harbor即可
在这里插入图片描述

<think>好的,我现在需要解决用户提到的docker-compose.yml中version属性过时的警告问题,并且用户还提到了Harbor。首先,我要回忆一下Docker Compose的版本历史以及配置文件的结构变化。 用户之前的问题是关于手动安装特定版本的docker-compose,现在转向了配置文件的版本问题。根据引用内容,用户可能在使用较旧的docker-compose版本,比如1.26.2或1.21.1,这可能导致YAML文件中的version字段过时。因为Docker Compose在版本迭代中逐渐弃用了version字段,特别是在Compose V3及以后版本中,该字段不再需要,转而使用顶层的`services`、`networks`等键。 接下来,我需要确定用户为什么会遇到这个警告。通常,当使用较新的docker-compose版本(比如2.x)时,如果配置文件中仍然包含version,会提示该字段已过时。解决方案是移除version字段,并调整配置文件结构以适应新版本。同时,用户提到了Harbor,需要检查Harbordocker-compose.yml是否适配新版本,可能需要升级Harbor或调整其配置文件。 另外,引用中的Harbor可能需要特定版本的docker-compose,比如用户提到的1.29.x以上,但Harbor自身的配置文件可能还在使用旧语法。因此,需要指导用户如何正确更新他们的docker-compose.yml,同时确保与Harbor兼容。 可能的步骤包括:检查当前docker-compose版本,移除或更新version字段,调整服务定义结构,处理网络和卷的配置变化,以及验证Harbor的配置是否适配。此外,用户可能需要了解如何在不破坏现有部署的情况下进行升级,并处理可能出现的兼容性问题。 还要考虑用户可能对版本变化不熟悉,需要解释清楚不同版本之间的差异,并提供示例代码。同时,确保回答中引用之前的引用内容,比如Harbor的版本要求,以及如何处理网络问题,比如使用国内镜像源。需要提醒用户备份原有配置文件,避免升级导致的服务中断。</think>### Docker Compose版本警告解决方案(适配Harbor) #### 一、问题核心分析 1. **版本演变** Docker Compose从V2开始逐步弃用`version`字段,2021年后发布的V2/V3版本默认使用[Compose Specification](https://docs.docker.com/compose/compose-file/)新规范[^1][^3] 2. **警告触发条件** 当检测到`docker-compose.yml`中存在`version: 'x'`声明时,现代版本(≥2.0)会提示: ```bash WARNING: The 'version' top-level element in '/path/to/docker-compose.yml' is obsolete. ``` #### 二、Harbor专用解决方案 1. **Harbor官方适配** Harbor从v2.4.0开始提供适配新规范的`docker-compose.yml`模板,关键修改点: ```yaml # 原格式(已过时) version: '2.3' services: nginx: image: goharbor/nginx-photon:v2.7.0 # 新格式(推荐) services: nginx: image: goharbor/nginx-photon:v2.7.0 networks: # 显式声明网络 harbor: driver: bridge volumes: # 显式声明卷 harbor-data: ``` 2. **版本兼容操作步骤** ```bash # 1.升级docker-compose(Harbor要求≥1.29.2) sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # 2.修改Harbor配置文件(通常在/harbor/docker-compose.yml) sed -i '/^version:/d' docker-compose.yml # 删除version行 # 3.添加显式网络/卷声明(参考官方模板) vi docker-compose.yml # 在文件末尾追加网络和卷定义 # 4.重启服务 docker-compose down && docker-compose up -d ``` #### 三、通用修复方案 1. **基础修改方法** ```diff - version: '3' # 删除该行 services: web: image: nginx:alpine + networks: + - mynet + + networks: # 显式声明网络 + mynet: ``` 2. **架构升级建议** - 使用`docker compose`(带空格)代替旧版`docker-compose`(带短横线) - 通过`docker compose version`确认是否已启用V2模式[^2] #### 四、验证与调试 1. **语法检查** ```bash docker compose config # 验证配置文件语法 ``` 2. **版本回退方案** 若必须使用旧版(如Harbor遗留系统): ```bash # 安装特定旧版本(需与version声明匹配) VERSION=1.29.2 && sudo curl -L "https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值