docker私有仓库

发布于:2025-07-15 ⋅ 阅读:(18) ⋅ 点赞:(0)

一、在本地跑一个运行私有仓库服务

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

推上来了

总结:


网站公告

今日签到

点亮在社区的每一天
去签到