文章目录
- Docker仓库
- 本地私有仓库
- Docker Harbor
- Docker harbor部署
- 访问页面
- 创建用户下载私有仓库镜像
- harbor同步
Docker仓库
本地私有仓库
##先下载 registry 镜像
docker pull registry
##修改配置文件,在 daemon.json 文件中添加私有镜像仓库地址
vim /etc/docker/daemon.json
{
"insecure-registries": ["http://192.168.242.66:5000"],
##注意在末尾添加 ,
"registry-mirrors": ["镜像加速URL"]
}
##重启服务
systemctl restart docker.service
##运行 registry 容器
docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
###为要上传的镜像重新打标签
docker tag nginx:centos7 192.168.242.66:5000/nginx:v1
##上传镜像到私有仓库
docker push 192.168.242.66:5000/nginx:v1
###在网页中查看所有的镜像
http://192.168.242.66:5000/v2/_catalog
###查看仓库中某一个镜像的tag标签
http://192.168.242.66:5000/v2/nginx/tags/list
###在另外一个docker服务器中,拉去这个仓库中是镜像
##也要先修改配置文件
##修改配置文件,在 daemon.json 文件中添加私有镜像仓库地址
vim /etc/docker/daemon.json
{
"insecure-registries": ["http://192.168.242.66:5000"],
##注意在末尾添加 ,
"registry-mirrors": ["镜像加速URL"]
}
##重启服务
systemctl restart docker.service
##在配置文件修改完成后,拉取镜像
docker pull 192.168.242.66:5000/nginx:v1
Docker Harbor
Docker harbor部署
##首先,先修改 daemon.json 配置文件
vim /etc/docker/daemon.json
{
"insecure-registries": ["http://192.168.242.67"],
##注意在末尾添加 ,
"registry-mirrors": ["镜像加速URL"]
}
##重启Docker服务
systemctl restart docker
##上传 Docker harbor 安装文件并安装
##安装 Docker-compose 服务
cd /opt/
tar xf harbor-offline-installer-v1.10.18.tgz
chmod +x docker-compose
mv /opt/docker-compose /usr/local/bin/docker-compose
docker-compose --version
##修改 harbor 配置文件
cd /opt/harbor
vim harbor.yml
---第5行---
hostname: 192.168.242.67
---第13行---
注释掉https的配置项
---第27行
harbor_admin_password: Harbor12345
##记住harbor的密码
##先做前其准备或者之间安装 harbor
cd /opt/harbor
./prepare
./install.sh ##自动安装
###查看所有的镜像是否安装成功
docker-compose ps
访问页面
###在网页中登陆到 harbor
http://192.168.242.67
用户:admin
密码:Harbor12345
##就可以看见页面
##在页面中创建项目
---》项目
---》新建项目
--》项目名称,其他默认,如果要创建公开仓库,可以点击公开
###上传镜像文件到 harbor的私有和共有仓库
##先修改标签
docker tag centos:7 192.168.242.67/library/centos:test01
docker tag centos:7 192.168.242.67/myimages/centos:test02
##要上传镜像到 harbor,需要先登录
docker login -u admin -p Harbor12345 http://192.168.242.67
##上传镜像
docker push 192.168.242.67/library/centos:test01
docker push 192.168.242.67/myimages/centos:test02
创建用户下载私有仓库镜像
--》用户管理
--》创建用户
--》按照要求填写选项
##对应的项目中添加用户
--》项目
--》点击项目名
--》成员,添加用户
--》为用户选择角色(决定用户的权限)
###在另外一个docker服务器中,拉取这个harbor仓库的镜像
##先修改配置文件
vim /etc/docker/daemon.json
{
"insecure-registries": ["http://192.168.242.67"],
##注意在末尾添加 ,
"registry-mirrors": ["镜像加速URL"]
}
##重启Docker服务
systemctl restart docker
###先利用创建的用户登陆 harbor
docker login -u lisi -p Lisi12345 http://192.168.242.67
##利用lisi 在myimages项目中的维护人员身份,来去镜像文件
docker pull 192.168.242.68/myimages/nginx:v2
###退出 lisi的登陆用户
docker logout
docker login -u zhangsan -p Zhangsan123 http://192.168.242.67
##尝试利用 zhangsan 的身份拉取镜像,成功
docker pull 192.168.242.68/myimages/nginx:v2
###利用这连个用户,尝试上传镜像
docker tag 192.168.242.66:5000/nginx:v2 192.168.242.68/myimages/ngin:v3
##先修改标签
docker push 192.168.242.68/myimages/ngin:v3
##在上传镜像
-
结论
-
拉取操作时:
- 公开项目的镜像可以被任意用户拉取
- 私有项目的镜像必须先登陆项目对应的相关用户才能拉取
-
上传操作时:
- 必须先登陆相关项目的用户,且登陆的用户具有上传权限的角色才能够推送镜像
-
harbor同步
###在另外的一台的docker服务器中创建harbor服务
##首先,先修改 daemon.json 配置文件
vim /etc/docker/daemon.json
{
"insecure-registries": ["http://192.168.242.66"],
##注意在末尾添加 ,
"registry-mirrors": ["镜像加速URL"]
}
##重启Docker服务
systemctl restart docker
##在harbor的配置文件中
vim harbor.yml
---第5行---
hostname: 192.168.242.66
---第13行---
注释掉https的配置项
---第27行
harbor_admin_password: Harbor12345
##记住harbor的密码
##在web中访问另外一台 harbor
http://192.168.242.66
###仓库管理
--》仓库管理
--》新建目标 提供者 : harbor 目标名:另一个harborIP 目标URL:另一个harborIP
访问ID:admin 访问密码:就是密码
--》测试链接 成功就确认
##两个harbor之间都要互相做对方的仓库管理
##两个 harbor 进行复制管理,首先创建 push 是触发动作,实现镜像同步
--》复制管理
--》新建规则
--》按照要求进行填写 名称:对方harbor的IP 复制模式:按要求选
目标的Registry:选择创建的仓库管理
触发模式:事件驱动
勾选 删除本地资源时,删除远程资源
##在192.168.242.68上 上传镜像,查看另一个harbor是否同步
docker tag nginx:latest 192.168.242.68/myimages/nginx:v8
docker login -u admin -p Harbor12345 http://192.168.242.68
docker push 192.168.242.68/myimages/nginx:v8
##在 192.168.242.66 的主机上创建 pull 来去来复制镜像
--》复制管理
--》新建规则
--》按照要求进行填写 名称:对方harbor的IP 复制模式:按要求选
目标的Registry:选择创建的仓库管理
触发模式:定时
Cron String 0 */1 * * * *
覆盖勾选