目录
部署企业级镜像仓库Docker Harbor
1. 部署docker-compose
官方网址:https://github.com/goharbor/harbor/releases
# curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
2. 部署私有镜像仓库Harbor
(1)下载离线包并解压:
wget https://github.com/goharbor/harbor/releases/download/v2.1.3/harbor-offline-installer-v2.1.3.tgz
tar -xf harbor-offline-installer-v2.1.3.tgz
(2)配置Harbor配置文件
cd harbor
mv harbor.yml.tmpl harbor.yml
修改 harbor.yml 文件中的 hostname 的值为 自己宿主机的主机名或者 IP
关闭 https,注释掉如下几行:
执行 install.sh
脚本
成功后如下图:
假如出现端口冲突的错误,修改 harbor.yml
文件中的如下内容:
http:
port: 宿主机的端口, 此端口将会映射到容器内的 8080 端口
假如你采用了非 80 端口,需要修改 harbor.yml 文件中的如下内容:
external_url: http://192.168.111.129:8010
#这个表示当你使用的额外的代理时候,就需要打开此选项,并且设置为正确的 url 和端口号
3. 浏览器访问测试
浏览器输入本机地址http://192.168.111.129/,也可输入加端口的地址
查看默认密码:
cat harbor.yml
4. Harbor使用
(1)更改语言
(2)创建仓库
(3)创建用户
设置用户管理员权限:
5. Harbor测试
上传:
由于我们没有使用 HTTPS,所以需要在 上传镜像的服务器上设置如下内容:
{"insecure-registries": ["192.168.111.129:80"]}
假如 daemon.json
文件中有其他配置内容,比如有关于镜像加速器的配置,这个只需要把
“insecure-registries”:[“192.168.111.129:80”]
追加到配置文件中的大括号中即可,注意两个配置中间写上应用逗号。
{
"registry-mirrors": ["https://ut9q2ix5.mirror.aliyuncs.com"],
"insecure-registries": ["192.168.111.129:80"]
}
配置完成后,重启Docker
[root@bogon harbor]# systemctl daemon-reload
[root@bogon harbor]# systemctl restart docker
登录Harbor仓库
[root@bogon harbor]# docker login 192.168.111.129:80
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 tag SOURCE_IMAGE[:TAG] 仓库地址:仓库端口/项目名称/REPOSITORY[:TAG]
docker tag nginx:alpine 192.168.111.129:80/shanhai/nginx:alpine
[root@bogon harbor]# docker push 192.168.111.129:80/shanhai/192.168.111.129:80/shanhai/nginx:alpine
invalid reference format
[root@bogon harbor]# docker push 192.168.111.129:80/nginx:alpine
The push refers to repository [192.168.111.129:80/nginx]
An image does not exist locally with the tag: 192.168.111.129:80/nginx
[root@bogon harbor]# docker push 192.168.111.129/shanhai/192.168.111.129:80/shanhai/nginx:alpine
invalid reference format
[root@bogon harbor]# docker push 192.168.111.129:80/shanhai/nginx:alpine
The push refers to repository [192.168.111.129:80/shanhai/nginx]
4689e8eca613: Pushed
3480549413ea: Pushed
3c369314e003: Pushed
4531e200ac8d: Pushed
ed3fe3f2b59f: Pushed
b2d5eeeaba3a: Pushed
alpine: digest: sha256:480395b7be07df06368c93469df41343c1e6285f5b37d387b5a17f2e8708a2a3 size: 1568
在web界面中查看镜像是否被上传到仓库中