前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >配置Harbor仓库本机与其他主机使用Docker login+域名连接

配置Harbor仓库本机与其他主机使用Docker login+域名连接

作者头像
非著名运维
发布2022-06-22 14:56:49
2.1K0
发布2022-06-22 14:56:49
举报
文章被收录于专栏:非著名运维

目的:

 在harbor本机或者其他主机可以使用docker login +域名 直接连接harbor主机仓库,不用在使用IP地址连接。

环境介绍:

代码语言:javascript
复制
Harbor客户端:172.21.xxx.xxx      harbor-images
CentOS Linux release 7.6.1810 (Core)
Docker 13.1.1
Docker compose 1.25.5
Harbor 1.5.0

Nginx客户端:172.21.ggg.ggg
CentOS Linux release 7.6.1810 (Core)
Docker 19.03.8
Docker compose 1.18.0

Harbor客户端修改:

1.修改/etc/hosts文件

代码语言:javascript
复制
[root@harbor harbor]# vim /etc/hosts
::1     localhost       localhost.localdomain   localhost6      localhost6.localdomain6
127.0.0.1       localhost       localhost.localdomain   localhost4      localhost4.localdomain4

172.21.xxx.xxx  iZ8vb4u5g0xxxxxxxxxx harbor-images    //添加登录域名

2.修改harbor目录下harbor.cfg文件:

 必须在harbor目录下运行,否则会报错。

代码语言:javascript
复制
[root@harbor ~]# cd /mnt/app/harbor/harbor/   
[root@harbor harbor]# docker-compose stop   //停止harbor服务
[root@harbor harbor]# vim harbor.cfg 
...
_version = 1.5.0
#The IP address or hostname to access admin UI and registry service.
#DO NOT use localhost or 127.0.0.1, because Harbor needs to be accessed by external clients.
hostname = harbor-images      //修改为域名

[root@harbor harbor]# ./prepare     //加载配置文件

3.修改/usr/lib/systemd/system/下的docker.service文件:

代码语言:javascript
复制
[root@harbor harbor]# vim /usr/lib/systemd/system/docker.service
[Unit]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target
Wants=docker-storage-setup.service
Requires=docker-cleanup.timer

[Service]
Type=notify
NotifyAccess=main
EnvironmentFile=-/run/containers/registries.conf
EnvironmentFile=-/etc/sysconfig/docker
EnvironmentFile=-/etc/sysconfig/docker-storage
EnvironmentFile=-/etc/sysconfig/docker-network
Environment=GOTRACEBACK=crash
Environment=DOCKER_HTTP_HOST_COMPAT=1
Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbin
ExecStart=/usr/bin/dockerd-current \
          --add-runtime docker-runc=/usr/libexec/docker/docker-runc-current \
          --default-runtime=docker-runc \
          --exec-opt native.cgroupdriver=systemd \
          --userland-proxy-path=/usr/libexec/docker/docker-proxy-current \
          --init-path=/usr/libexec/docker/docker-init-current \
          --seccomp-profile=/etc/docker/seccomp.json \
          --insecure-registry=harbor-images \        //添加为域名
          $OPTIONS \

[root@harbor harbor]# systemctl daemon-reload
[root@harbor harbor]# systemctl restart docker
[root@harbor harbor]# docker-compose start    //启动harbor服务

注意:

 这里添加的 --insecure-registry=IP/主机名 也是解决连接harbor时https报错的其中一步。

docker login连接https报错解决:https://blog.csdn.net/qq_44895681/article/details/105573702

4.测试本机域名连接

代码语言:javascript
复制
[root@harbor harbor]# docker login harbor-images
Username (admin): admin
Password: 
Login Succeeded      //登录成功

Nginx客户端修改:

1.修改/etc/hosts文件

代码语言:javascript
复制
[root@nginx ~]# cat /etc/hosts
::1    localhost   localhost.localdomain   localhost6  localhost6.localdomain6
127.0.0.1    localhost   localhost.localdomain   localhost4  localhost4.localdomain4

172.21.ggg.ggg    iZ8vbg29xxxxxxxxx
172.21.xxx.xxx  harbor-images    //增加harbor主机的IP及登录的域名

2.修改/etc/docker/目录下daemon.json文件

代码语言:javascript
复制
[root@nginx ~]# vim /etc/docker/daemon.json
{
"graph":"/mnt/app/docker/data",
"registry-mirrors": ["https://b34xxxxx.mirror.aliyuncs.com"],
"insecure-registries":["harbor-images"]
}

[root@nginx ~]# systemctl daemon-reload
[root@nginx ~]# systemctl restart docker

 添加"insecure-registries":["harbor-images"]中harbor主机设置的登录域名,这里的insecure参数如果是写在/usr/lib/systemd/system/docker.service中,如上面harbor主机那样,那么就直接修改/usr/lib/systemd/system/docker.service中该项配置即可,这个参数只能在docker.service或者daemon.json其中一个配置文件中。

3.测试nginx客户端域名连接harbor主机:

代码语言:javascript
复制
[root@nginx ~]# docker login harbor-images
Authenticating with existing credentials...
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded       //登录成功

 如果更改完配置并且重启docker成功后还是无法使用域名连接harbor主机服务,可以尝试断开nginx客户端SSH连接,重新连接nginx客户端再进行域名连接harbor主机服务。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-07-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 非著名运维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目的:
  • 环境介绍:
  • Harbor客户端修改:
  • Nginx客户端修改:
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档