安装
docker
curl -fsSL get.docker.com -o get-docker.sh
sudo sh get-docker.sh --mirror Aliyun
systemctl enable docker && systemctl start docker
镜像加速,配置国内镜像源,可以解决大部分拉取镜像失败问题
cat > /etc/docker/daemon.json << \EOF
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
EOF
docker compose
# 这里的 [x.x.x] 替换成 github releases 的对应版本
$ sudo curl -L https://github.com/docker/compose/releases/download/[x.x.x]/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
# 国内用户可以使用以下方式加快下载
$ sudo curl -L https://download.fastgit.org/docker/compose/releases/download/[x.x.x]/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
生成证书(可选)
当使用 https 访问时需要配置证书。
省略。。。
harbor
下载离线安装包
yum install -y wget
# 这里的 [x.x.x] 替换成 github releases 的对应版本
wget https://github.com/goharbor/harbor/releases/download/v[x.x.x]/harbor-offline-installer-v[x.x.x].tgz
tar -zxvf harbor-offline-installer-v[x.x.x].tgz
修改 harbor.yml 配置文件
cd harbor
cp harbor.yml.tmpl harbor.yml
vi harbor.yml
harbor.yml 具体修改内容,这里默认使用 http 没使用 https。
diff harbor.yml.tmpl harbor.yml
# 修改 hostname 为 Harbor 私有仓库主机的 IP 地址,在我的 Harbor 虚拟机中 IP 地址为 10.121.218.174
< hostname: reg.mydomain.com
---
> hostname: 10.121.218.174
# 修改 Harbor web 端口为 8090
< port: 80
---
> port: 8090
# 将 https 相关配置注释掉
< https:
< # https port for harbor, default is 443
< port: 443
< # The path of cert and key files for nginx
< certificate: /your/certificate/path
< private_key: /your/private/key/path
---
> #https:
> # # https port for harbor, default is 443
> # port: 443
> # # The path of cert and key files for nginx
> # certificate: /your/certificate/path
> # private_key: /your/private/key/path
# harbor_admin_password 字段设置管理员账户 admin 的密码
harbor_admin_password: Harbor12345
安装 harbor
./prepare
./install.sh
重新安装:当修改 harbor.yml 后,我们需要执行 ./prepare,让配置能够得到更新。当然,历史存在的容器 container 也需要清理,除了使用 docker rm 进行清理外,还可以使用 docker system prune 进行清理。
使用
web 访问
在浏览器上输入 10.121.218.174:8090 访问 Harbor 的 web UI 登录界面
账户:admin,密码:Harbor12345
其他机器使用该仓库
由于使用的是 http 方式,需要添加私有仓库地址和端口到 docker 仓库可信队列
cat > /etc/docker/daemon.json << \EOF
{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
],
"insecure-registries": ["10.121.218.174:8090"]
}
EOF
使用 admin 账户登录私有仓库
docker login 10.121.218.174:8090 -u admin -p Harbor12345
从公共库拉取 busybox:latest 镜像,打包成新镜像(格式 ip:port/project/image),推送到私有仓库
docker pull busybox
docker tag busybox:latest 10.121.218.174:8090/library/busybox:latest
docker push 10.121.218.174:8090/library/busybox:latest
推送成功后就可以在 Harbor 的 web 界面上看到在 library 项目下新增了一个镜像