MySQL, Oracle, Linux, 软件架构及大数据技术知识分享平台

网站首页 > 精选文章 / 正文

Harbor私有镜像仓库的管理与使用 私有docker镜像仓库

2024-12-16 13:24 huorong 精选文章 5 ℃ 0 评论

简介:Harbor 的每个组件都是以 Docker 容器的形式构建的,使用 docker-compose 来对它进行部署。本文将新建一个名称为gzprg的项目,设置不公开。值得注意的是当项目设为公开后,任何人都有对此项目下所有镜像的读权限。命令行用户不需要“docker login”就可以拉取此项目下的镜像。

本文将通过实例介绍Hardor的管理与使用,详细内容请参考下文。

一、查看Harbor运行情况

1、登录Linux系统

2、查看Docker运行情况

执行指令# systemctl status docker

3、查看Harbor运行情况

执行指令# docker-compose ps

二、Harbor私有仓库的使用与管理

1、客户端登录Harbor

访问地址http://docker.gzprg.com,通过账号admin和密码登录

2、服务端登录Harbor

(1)问题

执行指令# docker login docker.gzprg.com

输入账号admin和密码登录

备注:此时可使用 Docker 命令在本地通过docker.gzprg.com来登录和推送镜像。默认情况下,Register 服务器在端口 80 上侦听。

以上操作都是在 Harbor 服务器本地操作。如果其他客户端上传镜像到 Harbor,就会报如下错误。出现这问题的原因 Docker Registry 交互默认使用的是 HTTPS,但是搭建私有镜像默认使用的是 HTTP 服务,所以与私有镜像交互时出现以下错误。

Error response from daemon: Get "https://docker.gzprg.com/v2/": dial tcp 172.16.26.92:443: connect: connection refuse

(2)、决解办法

解决上述问题的方法是通过修改docker.service配置文件。

执行指令# vim /usr/lib/systemd/system/docker.service

修改内容为ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 172.16.26.92 --containerd=/run/containerd/containerd.sock

(3)、重新加载

说明:systemctl daemon-reload重新加载某个服务的配置文件,如果新安装了一个服务,归属于systemctl管理,要是新服务的服务程序配置文件生效,需重新加载。

执行指令# systemctl deamon-reload

(4)、重启docker

执行指令# systemctl restart docker

(5)、重构harbor

执行指令# docker-compose up -d

(6)、登录harbor

执行指令# docker login 127.0.0.1输入账号admin及密码登录

三、Harbor私有仓库的镜像管理

1、客户端访问

2、从docker hub上拉取镜像

执行指令# docker pull node:8.16

执行指令# docker images

3、将需要的镜像保存成一个tar包

执行指令# docker save node:8.16 -o node8.16.tar

4、加载镜像

说明:切换到 node8.16.tar 所在的目录,加载镜像。

执行指令# docker load -i node8.16.tar

5、修改镜像tag

执行指令# docker tag node:8.16 172.16.26.92/gzprg/node:8.16

6、登录harbor

执行指令# docker login 172.16.26.92输入账号admin和密码登录

7、将镜像推送到仓库

执行指令# docker push 172.16.26.92/gzprg/node:8.16

8、客户端查看镜像

9、从harbor私有仓库下载镜像

执行指令# docker pull 172.16.26.92/gzprg/node:8.16

四、Harbor管理指令

1、docker-compose up [options]

选项包括:

-d 在后台运行服务容器

–no-color 不使用颜色来区分不同的服务的控制输出

–no-deps 不启动服务所链接的容器

–force-recreate 强制重新创建容器,不能与–no-recreate同时使用

–no-recreate 如果容器已经存在,则不重新创建,不能与–force-recreate同时使用

–no-build 不自动构建缺失的服务镜像

–build 在启动容器前构建服务镜像

–abort-on-container-exit停止所有容器,如果任何一个容器被停止,不能与-d同时使用

-t, –timeout TIMEOUT 停止容器时候的超时(默认为10秒)

–remove-orphans 删除服务中没有在compose文件中定义的容器

–scale SERVICE=NUM 设置服务运行容器的个数,将覆盖在compose中通过scale指定的参数

docker-compose up

启动所有服务

docker-compose up -d

在后台所有启动服务

-f 指定使用的Compose模板文件,默认为docker-compose.yml,可以多次指定。

docker-compose -f docker-compose.yml up -d

2、docker-compose ps

执行指令# docker-compose ps 列出项目中目前的所有容器

3、docker-compose stop

执行指令# docker-compose stop停止正在运行的容器,可以通过docker-compose start 再次启动。

4、docker-compose down

执行指令# docker-compose down停用移除所有容器以及网络相关

5、docker-compose logs

执行指令# docker-compose logs查看服务容器的日志

6、docker-compose pull

执行指令# docker-compose pull拉取服务依赖的镜像

7、docker-compose stop

执行指令# docker-compose stop停止服务容器

8、docker-compose rm

执行指令# docker-compose rm删除所有(停止状态的)服务容器。推荐先执行docker-compose stop命令来停止容器。

9、docker-compose start

执行指令# docker-compose start启动已经存在的服务容器

10、docker-compose run

执行指令# docker-compose run在指定容器上执行一个命令。

Tags:harbor安装

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言