1.安装docker-compose1.下载docker-compose的最新版本

sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
2.为docker-compose添加可执行权限

chmod +x /usr/local/bin/docker-compose
3.验证查看docker-compose版本

docker-compose --version


如果docker compose的版本太低会提示如下错误:

2.安装Harbor
1)下载Harbor https://github.com/goharbor/harbor/releases ( 推荐离线安装包)

tar -zxvf harbor-offline-installer-v1.8.0.tgz #解压离线安装包
mv harbor /opt/ #移到/opt目录下
cd /opt #进入到/opt目录
cd harbor
ll #查看目录内容
进入harbor目录修改harbor.yml 文件如下(我这里下载的离线安装的版本):

然后安装

./prepare
./install.sh

注意docker 里面不要有redis容器 否者会有提示for redis  Cannot create container for service redis: Conflict

3.使用Harbor
进入http://192.168.100.3

1.增加仓库地址:

文件目录:/etc/docker/daemon.json (没有则新建该文件)

{ "insecure-registries":["192.168.100.3:80"] }
或者用指令 echo '{ "insecure-registries":["192.168.100.3:80"] }' > /etc/docker/daemon.json

重启dcoker:service docker restart

网上还有一种方法是:

修改 /lib/systemd/system/docker.service  在ExecStart的最后增加:--insecure-registry=198.168.100.3:80

修改docker.service一定要执行systemctl daemon-reload刷新配置 ,然后重启 systemctl restart docker

连接本地的harbor

如果是windows ,右击docker图标,在settings里的Deamon的Insecure registries里增加Harbor的IP和端口,docker会自动重启

2.push 镜像

为了以防用户信息错乱 可以先logout 然后在login

docker logout 192.168.100.3:80
docker login 192.168.100.3:80

a.新建repo-test私有仓库,

  1. #拉取镜像
  2. docker pull hello-world
  3. #给镜像打tag(镜像的格式为,镜像仓库IP:端口/镜像名称)
  4. docker tag hello-world 192.168.100.3:/repo-test/hello-world:
  5. #PUSH到仓库
  6. docker push 192.168.100.3:/repo-test/hello-world

如果遇到如下错误:

root@gavin-vm:~# docker push 192.168.100.3:80/hello-world
The push refers to repository [192.168.100.3:80/hello-world]
af0b15c8625b: Retrying in 5 seconds 
其实是打tag时打的不对  通过命令journalctl -u docker.service 或者 查看日志文件/var/log/harbor/registry.log查看错误日志

----2019-8-14 补充

如图所示 每当ubuntu重启后 harbor的某些容器不能自动启动起来

也尝试过修改container的启动参数 docker container update --restart=always 容器名字/ID (禁止命令 docker container update --restart=no 容器名字/ID ),但是查看 /opt/harbor/docker-compose.yml文件里面确实有 restart: always

解决方案就是:将 harbor配成systemd的service,添加配置文件 /etc/systemd/system/harbor.service,内容如下:

  1. [Unit]
  2. Description=Harbor
  3. After=docker.service systemd-networkd.service systemd-resolved.service
  4. Requires=docker.service
  5. Documentation=http://github.com/vmware/harbor
  6.  
  7. [Service]
  8. Type=simple
  9. Restart=on-failure
  10. RestartSec=
  11. ExecStart=/usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml up
  12. ExecStop=/usr/local/bin/docker-compose -f /opt/harbor/docker-compose.yml down
  13.  
  14. [Install]
  15. WantedBy=multi-user.target

然后启动该服务:

  1. sudo systemctl enable harbor
  2. sudo systemctl start harbor

重启再看,发现 harbor 容器组终于全部 up 了:

参考地址

Harbor 开机自启遇到的问题

goharbor/harbor

Ubuntu16 安装搭建Harbor

harbor搭建与使用

harbor搭建及使用

How To Install and Use Docker Compose on Ubuntu 18.04

Centos7 搭建 Harbor 私有仓库(一) -- 以http方式搭建

Docker私有仓库搭建(Harbor)

Ubuntu18 安装搭建Harbor的更多相关文章

  1. 搭建Harbor企业级docker仓库

    搭建Harbor企业级docker仓库 一.Harbor简介 1.Harbor介绍 Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如 ...

  2. 搭建Harbor私有镜像仓库--v1.5.1

     搭建Harbor私有镜像仓库--v1.5.1 1.介绍 Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境 ...

  3. kubernetes搭建Harbor无坑及Harbor仓库同步

    一.helm搭建harbor 1.安装helm 1.1.安装helm客户端 tar -zxvf helm-v2.14.3-linux-amd64.tar.gz mv linux-amd64/helm ...

  4. 搭建Harbor

    搭建Harbor 一.安装准备 二.安装docker-ce 三.安装docker-compose 四.安装harbor 5.1下载安装程序 5.2配置harbor.yml 5.3运行install.s ...

  5. Centos7搭建Harbor私有仓库(二)

    1 说明 前文Centos7搭建Harbor私有仓库(一)中成功搭建了Harbor,但,是以http方式搭建的,这里我们修改为https方式 以下基于镜像CentOS-7-x86_64-Minimal ...

  6. docker搭建harbor私有镜像库

    创建harbor私有镜像库 一.部署准备: harbor软件包   在部署节点上: 1)解压harbor的软件包将harbor目录下所有文件发送到/opt/目录下   tar zxvf harbor- ...

  7. 搭建harbor企业级私有registry

    主机环境要求 硬件Hardware Resource Capacity Description CPU minimal 2 CPU 4 CPU is prefered Mem minimal 4GB ...

  8. Docker私服搭建--Harbor

    Docker私服搭建--Harbor Harbor概述 Harbor的安全机制 Harbor的镜像同步 Harbor的镜像同步机制 Harbor的多级部署 一.安装 1.1 docker安装 1.2 ...

  9. centos6.5下Zabbix系列之Zabbix安装搭建及汉化

    最近在研究zabbix,在整理完成之后就有了写一下总结博客的想法,在我研究zabbix的时候给我很大帮助的是it你好,博客地址http://itnihao.blog.51cto.com/他做的zabb ...

随机推荐

  1. Qt中的强制类型转换

    在C++开发中经常要进行数据类型的强制转换. 刚开始学习的时候,直接对基本数据类型强制类型转换,如float fnum = 3.14; int num = (int)fnum; 随着C++标准的发展, ...

  2. Android开发之EditText多行文本输入

    <EditText android:id="@+id/add_content" android:layout_width="fill_parent" an ...

  3. rocketmq 两主两从异步集群搭建

    1.安装JDK 需要先卸载系统默认的OPENJDK,安装 JDK1.8 64位的版本. 卸载open-jdk rpm -qa|grep java 查到open jdk的安装. 使用命令 rpm -e ...

  4. Alipay支付宝调用错误:Call to undefined function openssl_sign()

    打开php.ini,找到这一行 ;extension=php_openssl.dll,将前面的“;”去掉: 重启服务器.

  5. php模板模式(template design)

    没有写停止条件,所以会一直运行哟. <?php /* The template design pattern defines the program skeleton of an algorit ...

  6. adb 命令之push pull

    C:\Users\ceshi>adb pull /storage/emulated/legacy/00001.vcf D:/E:\eclipse\Demo1>adb push E:\ecl ...

  7. CentOS7 开放端口 通过 firewall-cmd 工具来操作防火墙

    CentOS7 提供了 firewall-cmd 工具来操作防火墙. firewall-cmd --permanent:表示设置为持久,配置被写入配置文件,跨重启,不会立即生效,重新加载配置后生效.不 ...

  8. qhclass

    http://www.qhclass.com/classroom/62/courses

  9. CanvasRenderingContext2D.fillText(text, x, y [, maxWidth]);

    CanvasRenderingContext2D.fillText(text, x, y [, maxWidth]); [, maxWidth]的意思是,方括号代表可有可无,有fillText(tex ...

  10. 阿里云物联网平台: Android 连接阿里云物联网平台

    说明 这节是是为下一节做铺垫的 只要是按照我提供的学习路线一节一节的认认真真学过来的,这节就十分的简单 有了前两节的基础,这节呢咱让Android 连接阿里云物联网平台 使用这节的代码  https: ...