Linux系统Docker harbor使用http的解决办法
harbor 最新版本都默认使用https,但是如果是内网服务器也没必要假设一个https,当然为了安全也可以使用,但是操作比较复杂。这里提供一个配置http的方案。 harbor 最新版本都默认使用https,但是如果是内网服务器也没必要假设一个https,当然为了安全也可以使用,但是操作比较复杂。这里提供一个配置http的方案。 首先在harbor服务器里面修改harbor.cfg 复制 [root@vv harbor]# vi harbor.cfg 1. 修改 ui_url_protocol = http 在 目标机器上(项目部署的docker所在服务器) /etc/docker添加一个daemon.json文件。 vi /etc/docker/daemon.json 内容如下: 复制 { "insecure-registries":["harbor server ip"] } 1. 2. 3. harbor server ip :harbor的内网IP 添加完之后可以测试一下 复制 echo | docker login -u --password-stdin 1. : 在harbor上注册的密码 :在harbor上注册的用户 :harbor的内网IP 如果现实能正常登陆即可 当然也可以通过修改harbor服务配置的方式来实现。 在harbor设置http的方式 对于在内网环境中的 Harbor 实例,默认使用 HTTPS 可能并不是必需的,而且可能会增加配置和管理的复杂性。如果你希望配置 Harbor 以使用 HTTP(不是 HTTPS),你可以按照以下步骤操作: 修改 Harbor 的配置文件:找到 Harbor 的配置文件,一遍是 /etc/harbor/harbor.yml。可以使用文本编辑器打开,在文件中找到以下部分: 复制 ui: ssl: enabled: true 1. 2. 3. 将 enabled 的值改为 false,如下所示: 复制 ui: ssl: enabled: false 1. 2. 3. 重启 Harbor 服务:保存更改并重启 Harbor 服务以使配置生效。 复制 sudo systemctl restart harbor 1. 配置 Nginx(如果使用的话):如果你在内网环境中使用了 Nginx 作为反向代理,还需要确保 Nginx 的配置也是使用 HTTP。查找 Nginx 配置文件中关于 Harbor 的部分,并进行相应的更改。 附上配置harbor仓库的方法,供大家参考 复制 ## 使用docker镜像启动镜像仓库服务 $ docker run -d -p 5000:5000 --restart always --name registry registry:2 ## 默认仓库不带认证,若需要认证,参考https://docs.docker.com/registry/deploying/#restricting-access 1. 2. 3. 4. 推送镜像至仓库 复制 $ docker tag nginx:alpine localhost:5000/nginx:alpine $ docker push localhost:5000/nginx:alpine ## 查看仓库内元数据 $ curl -X GET http://172.21.51.143:5000/v2/_catalog $ curl -X GET http://172.21.51.143:5000/v2/nginx/tags/list ## 镜像仓库给外部访问,不能通过localhost,尝试使用内网地址172.21.51.143:5000/nginx:alpine $ docker tag nginx:alpine 172.21.51.143:5000/nginx:alpine $ docker push 172.21.51.143:5000/nginx:alpine The push refers to repository [172.21.51.143:5000/nginx] Get https://172.21.51.143:5000/v2/: http: server gave HTTP response to HTTPS client ## docker默认不允许向http的仓库地址推送,如何做成https的,参考:https://docs.docker.com/registry/deploying/#run-an-externally-accessible-registry ## 我们没有可信证书机构颁发的证书和域名,自签名证书需要在每个节点中拷贝证书文件,比较麻烦,因此我们通过配置daemon的方式,来跳过证书的验证: $ cat /etc/docker/daemon.json { "insecure-registries": [ "172.21.51.143:5000" ] } $ systemctl restart docker $ docker push 172.21.51.143:5000/nginx:alpine (编辑:PHP编程网 - 黄冈站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |