一、在本地跑一个运行私有仓库服务
docker run -itd --name registry --restart=always -p 5000:5000 -v /registry:/var/lib/registry registry
起了个名字:registry;restart always是随着docker服务的启动而启动,如果这个docker服务器重启了,这个也要把他启动起来;宿主机的5000端口和容器的5000端口做了个映射,本地的registry目录和容器的/var/lib的registry目录做一个映射
宿主机的5000端口和容器的5000端口做了个映射
二、镜像重命名(要上传的镜像名需要注明私仓的ip)
docker images

打包
#docker tag +镜像 +打包后的 #eg. docker tag nginx:latest 192.168.8.10:5000/nginx docker tag myubuntu:18.04 192.168.6.11:5000/ubuntu:18.04

用docker images查看就有了

把镜像推送上去
#docker push +镜像 docker push 192.168.6.11:5000/ubuntu
如果有报错是因为:docker默认是从dockerhub上下载镜像的,需要在本地指定一下私有仓库的IP加端口,这是因为docker默认不允许非HTTPS方式推送镜像。如果没做这一步,会宝HTTPS的错。
如果报错就:修改文件
vim /etc/docker/daemon.josn

添加成

要配置的文件生效就要重启docker服务
systemctl restart docker
有问题的话看日志
systemctl status docker.service
不明确就输
tail /var/log/messages


修改完后重启
systemctl restart docker
然后看能不能推送上去
docker push 192.168.6.11:5000/ubuntu:18.04

到本地路径下看
cd /registry/docker/registry/v2/repositories/ ls

三、搭建可视化web界面
docker pull hyper/docker-registry-web

(打包

然后传到另一台机器


然后拷到我们当前
在192.168.6.12root目录底下去拷docker-registry-web.tar(在6.12这个机器里输入ls看有什么,看你要拷的名字叫什么)拷到我们当前

下载到本地

使用)
harbor构建企业级私有docker镜像的仓库的开源解决方案
我们换一个新机器做

先看前提条件,看防火墙和selinux

先docker,先配个docker镜像仓库,因为之前配过,我们直接从另一台机子上拷过去
cd /etc/yum.repos.d/ ls

把docker-ce.repo拷到我新机子上
scp docker-ce.repo 192.168.6.51:/etc/yu.repos.d

然后来新机子这边直接装

把这个也拷到新机子上
scp /etc/docker/daemon.json 192.168.6.51:/etc/docker
然后启动一下
systemctl enable --now docker
然后看一下

因为还要用docker-compose所以还要下载这个
sudo curl -L https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-\`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
然后ll看一下有没有执行权限

没有的话增加执行权限
chmod +x /usr/local/bin/docker-compose
检查docker-compose
docker-compose -v

部署harbor服务
wegt -c https://github.com/goharbor/harbor/releases/download/v2.13.1/harbor-offline-installer-v2.13.1.tgz
解压
ls
tar xf harbor-offline-installer-v2.13.1.tgz -C /usr/local/
配置harbor参数文件
ls
cd /usr/local/harbor/ ls cp harbor.yml.tmp harbor.yml vim harbor.yml

这几个都改成这样

默认密码

执行,可以检查语法同时拉取镜像
ll ./prepare
检查镜像发现拉下来了一个

看能不能运行起来
ls ./install.sh

运行起来了,发现这个80端口和8080端口做了个映射
docker-compose ps

登录
用户:admin
密码:Harbor12345




目前我们这里是空的,我们来尝试一下。
因为我这个192.168.6.1有镜像,进入这个机子
vim /etc/hosts

编辑
vim /etc/docker/daemon.json

配置完文件后一定要重启docker
systemctl restart docker

先登录这个仓库才能推
docker login registry.openlab.edu
登录成功

然后再根据harbor的推送命令给的格式,来打包busybox
#docker tag SOURCE_IMAGE[:TAG] registry.openlab.edu/library/REPOSITORY[:TAG] docker tag busybox:latest registry.openlab.edu/library/busybox:latest
#docker push registry.openlab.edu/library/REPOSITORY[:TAG] docker push registry.openlab.edu/library/busybox:latest
弄上去了








客户端想往里面推送
我到192.168.6.12里面弄也是一样的
vim /etc/hosts

vim /etc/docker/daemon.json
懒得手敲了,到6.11这里复制方框这一部分粘到6.12里面

重启
systemctl restart docker
检查一下我这个本地有没有镜像
docker images
然后我们把乌班图推送上去
docker tag myubuntu:18.04 registry.openlab.edu/openlab/ubuntu:18.04
先登录上去这个仓库
#docker login --help不知道命令看这里 docker login -u dev -p Openlab123 registry.openlab.edu
登录成功后推送我的镜像
docker push registry.openlab.edu/openlab/ubuntu:18.04

我们再实验个,在6.11实验
docker tag mysql:5.6 registry.openlab.edu/openlab/mysql:5.6
docker logout docker login -u dev -p Openlab123 registry.openlab.edu
docker push registry.openlab.edu/openlab/mysql:5.6
推上来了

总结:


