Docker-Compose部署Harbor

docker-compose部署harbor

官网下载 harbor 安装包

https://github.com/goharbor/harbor/releases

下载成功后并上传至服务器

解压 & 安装

tar -zxvf harbor-offline-installer-v2.3.1.tgz```



#### 修改配置文件

`````bash
sh
cd harbor
cp harbor.yml.tmpl  harbor.yml
vim harbor.yml
```````bash


修改如下配置:

![](/images/docker-compose/docker-harbor-1.png)



### 预检查


`````sh
./prepare`````bash


结果:

![](/images/docker-compose/docker-harbor-2.png)



### 执行安装脚本:


`````sh
 ./install.sh`````bash


##### 报错:Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /var/log/harbor/

创建这个目录:


`````sh
mkdir /var/log/harbor/`````bash




结果:

![](/images/docker-compose/docker-harbor-3.png)



#### 访问:101.34.xxx.xxx:8081  初始账号/密码 : admin/Harbor12345

![](/images/docker-compose/docker-harbor-4.png)



### harbor 启动,停止,重启


```````bash
sh
# 进入 目录:/usr/local/docker/harbor/harbor
docker-compose start
docker-compose stop
docker-compose restart

配置docker客户端

vim /etc/docker/daemon.json```

添加一下内容:

`````bash
sh
{
  "registry-mirrors": ["https://o268vo1s.mirror.aliyuncs.com"],
  "insecure-registries": ["101.34.xxx.xxx:8081"]
}

重启docker服务

sh
systemctl daemon-reload
systemctl restart docker

检查配置是否生效

docker info`````bash


结果:

![](/images/docker-compose/docker-harbor-5.png)



### 创建 Harbor 项目&用户

![](/images/docker-compose/docker-harbor-6.png)



![](/images/docker-compose/docker-harbor-7.png)



### Harbor 上传镜像

这里以我的项目为例:登录 39.106.xxx.xxx 服务器


```docker images```bash
 查看已经存在的docker镜像

![](/images/docker-compose/docker-harbor-9.png)

### 推送 scms 镜像到私有仓库


```````bash
sh
# 在项目中标记镜像  这里使用image id 或则 docker  ps -a 的 scms1.0
docker tag scms1.0 101.34.xxx.xxx:8081/jenkins/scms:1.0.0
# 登录 Harbor
docker login 101.34.xxx.xxx:8081 -u admin -p Harbor12345
# 推送镜像到项目
docker push 101.34.xxx.xxx:8081/jenkins/scms:1.0.0
```````bash


结果:

![](/images/docker-compose/docker-harbor-10.png)

#### 登录 harbor管理控制台

![](/images/docker-compose/docker-harbor-11.png)



#### 拉取命令:


```````bash
sh
# 先登录再拉取
docker login 101.34.xxx.xxx:8081 -u admin -p Harbor12345
docker pull 101.34.xxx.xxx:8081/jenkins/scms:1.0.0
```````bash


![](/images/docker-compose/docker-harbor-12.png)



### docker push 很慢,走全局代理的方式:


```````bash
sh
# 创建目录
mkdir -p /etc/systemd/system/docker.service.d
# 创建文件
vi /etc/systemd/system/docker.service.d/http-proxy.conf
# 写入配置  内网harbor ip+端口
[Service]
Environment="HTTP_PROXY=http://172.30.86.239:9002/"
# 刷新更改
systemctl daemon-reload && systemctl restart docker
# 验证是否生效
systemctl show --property=Environment docker
>>> Environment=HTTP_PROXY=http://172.30.86.239:9002/