Harbor - 私人docker镜像仓库
-
单容器实例 + Portainer-agent 管理
-
由于 harbor 启动后有多个容器,在 docker 中不易管理,启停麻烦,因此使用 docker in docker 部署便可解决这个烦恼
1.创建容器
- 镜像:
docker:dind
此容器为docker in docker
官方镜像DockerHub - 端口:
- 宿主:80 harbor http
- 宿主:443 harbor https
- 宿主:9001 portainer-agent
- 文件:
- 宿主:/data harbor data
docker run -itd --privileged --name harbor -p 80:80 -p 443:443 -p 9001:9001 -v /data/run:/var/run -v /data:/data docker:dind
此处将 /var/run 映射出来是防止强行关闭容器会导致pid残留而无法启动harbor,映射出后可以直接在文件中删除pid
2.进入容器
docker exec -it harbor /bin/ash
- 进入根目录下载
harbor
文件GitHub
cd /
wget https://github.com/goharbor/harbor/releases/download/v2.8.2/harbor-offline-installer-v2.8.2.tgz
此处下载的是2.8.2版本标准离线版镜像
- 解压
tar -zxf harbor-offline-installer-v2.8.2.tgz
解压出的就是名为harbor
的文件夹
- 删除压缩包节约空间,文件 > 500MB
rm harbor-offline-installer-v2.8.2.tgz
- 进入 harbor 文件夹
cd /harbor
- 可以看到如下文件
- 将
harbor.yml.tmpl
文件名改为harbor.yml
mv harbor.yml.tmpl harbor.yml
- 然后修改文件内容
vi harbor.yml
需要修改的位置为:
-
hostname 修改为你的 hostname
-
https 中的证书文件
将其修改为
此处的证书文件,需要退出容器,在宿主机的映射目录中放入响应文件
如果不需要 https ,则可以将所有的 https 及其子项头全部加 # 注释即可
-
harbor_admin_password 此处要修改管理员密码,后续进入系统后也可修改,管理员账户 root
-
其他位置默认均不用修改
- 下载安装 bash
apk add bash
网络状态不好可以换清华源
echo "http://mirrors.sjtug.sjtu.edu.cn/alpine/latest-stable/main" > /etc/apk/repositories
echo "http://mirrors.sjtug.sjtu.edu.cn/alpine/latest-stable/community" >> /etc/apk/repositories
- 一切准备就绪,执行安装程序
./install.sh
3.安装portainer监控容器
- 在容器内执行
docker run -d \
-p 9001:9001 \
--name portainer_agent \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/docker/volumes:/var/lib/docker/volumes \
portainer/agent:2.18.4
- 在portainer添加即可在portainer主页管理内部容器状态