Harbor 环境准备:
docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共的镜像仓库,但是从安全和效率等方面考虑,部署我们私有环境内的Registry也是非常必要的。Harbor是由VMware公司开源的企业级的Docker Registry管理项目,它包括权限管理(RBAC)、LDAP、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。
1. docker 安装:docker安装与卸载
2. Docker-compose 安装:从 github 上下载它的二进制包进行安装:(https://github.com/docker/compose/releases)注意:要安装其他版本的 Compose,请替换 v2.3.4。
sudo curl -L "https://github.com/docker/compose/releases/download/v2.3.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
将可执行权限应用于二进制文件:
sudo chmod +x /usr/local/bin/docker-compose
创建软链:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
测试是否安装成功:
docker-compose --version
Harbor 服务搭建
1.本地下载Harbor安装文件、上传至服务器、解压文件、修改配置。从 【github harbor官网 release】 页面下载指定版本的安装包,拖到服务器/root/目录下进行解压:
tar -zxf harbor-offline-installer-v2.2.2-rc1.tgz
cd harbor
mv harbor.yml.tmpl harbor.yml
vim harbor.yml
2. 开始安装harbor:修改完配置文件后,在的当前目录执行:
./install.sh
harbor服务就会根据当期目录下的 docker-compose.yml 开始下载依赖的镜像,检测并按照顺序依次启动各个服务。
3. 安装完成查看状态:
docker-compose ps
4.harbor的停止与启动
cd harbor
docker-compose down #停止
docker-compose up -d #启动
5.访问harbor首页:访问刚设置的 hostname 即可,默认是80端口,如果端口占用,可以去修改docker-compose.yml文件中,对应服务的端口映射。
登录密码:admin , 登录密码:Harbor12345。
通过 http 请求访问 harbor
如果安装harbor是通过http请求访问harnor镜像仓库,则 必须在 /etc/docker/daemon.json 增加字段 --insecure-registry
,填写 如下:
{
"registry-mirrors": ["https://k1ktap5m.mirror.aliyuncs.com"],
"insecure-registries": ["http://192.168.0.1:80"]
}
重启docker
systemctl restart docker
停止harbor
docker-compose down -v
重启harbor
docker-compose up -d
docker push 镜像:
登录镜像仓库:
[root@centos7 ~]# docker login 192.168.0.1:80
Username: admin
Password:
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
推送harbor镜像的命令格式如下:
docker push 192.168.0.1:80/library/REPOSITORY[:TAG]
看命令就知道,docker push后面的其实就是打标记的时候标记。
命令如下:
[root@centos7 ~]# docker tag centos:latest 192.168.0.1:80/library/centos:latest
[root@centos7 ~]# docker push 192.168.0.1:80/library/nginx:latest
The push refers to repository [192.168.211.5:80/library/nginx]
fac15b2caa0c: Pushed
f8bf5746ac5a: Pushed
d11eedadbd34: Pushed
797e583d8c50: Pushed
bf9ce92e8516: Pushed
d000633a5681: Pushed
latest: digest: sha256:6fe11397c34b973f3c957f0da22b09b7f11a4802e1db47aef54c29e2813cc125 size: 1570