Docker镜像仓库

打印 上一主题 下一主题

主题 1954|帖子 1954|积分 5862

一、Docker Hub(公有仓库)
Docker Hub官网:https://hub.docker.com/
目前 Docker 官方维护了一个公共仓库Docker Hub ,大部分需求都可以通过在 Docker Hub 中直接下载镜像来实现。
假如你以为拉取 Docker Hub 的镜像比较慢的话,我们可以配置一个镜像加速器,当然国内大部分云厂商都提供了相应的加速器,简单配置即可。
注册:你可以在 https://cloud.docker.com 免费注册一个 Docker 账号。
登录:通过执行docker login 下令交互式的输入用户名及暗码来完成在下令行界 面登录 Docker Hub。
注销:你可以通过docker logout 退出登录。
二、阿里云镜像仓库www.aliyun.com
(https://cr.console.aliyun.com/cn-beijing/instances)
账号注册登陆后,搜“容器镜像服务”--->点“容器镜像服务”--->"管理控制台"--->"个人实例"--->"创建命名空间"--->"创建镜像仓库"--->选择仓库"管理"--->可以查看“操作指南”
附带了解:镜像加速器配置https://cr.console.aliyun.com/cn-beijing/instances/mirrors





根据操作指南进行进行的上传和下载

三、实行环境

都安装好Docker服务
四、Registry(私有仓库)
公司服务器大部分都是私网,为了安全和方便可以搭建私有仓库,而不用完全手动的去导入导出镜像,由于是局域网拉取速度非常快,可以节省带宽和大量时间。
公司会有大量的镜像,而且不光仅是单台的dockerHost。我们需要有一个本地的共用的仓库,来实现多台dockerHost直接拉取镜像而不用手动的将镜像传来传去。
Registry服务端:
1、创建基于registry的私有仓库
用docker容器运行registry私有仓库服务
registry是官方打包好的服务,端口为5000,就像其他假造出来的web服务一样
这里我们使用的是registry:2版本,另有一个registry镜像,这两个没有什么大的区别。registry: 是用Python语言写的,registry:2使用Go 语言写的,理论上来说,registry:2这个版本运行更快些。

下载registry镜像:
docker pull registry:2

2、运行registry私有仓库服务
docker run -d --name registry --restart=always -p 5000:5000 -v /registry:/var/lib/registry registry:2

--restart=always: 设置容器的重启策略为“always”,即容器会在 Docker 守护历程启动时主动启动,或者在容器退出时主动重启
-v /registry:/var/lib/registry: 将主机上的 /registry 目录(假如没有此目录会主动创建)挂载到容器内的 /var/lib/registry 目录。Registry 会将镜像数据存储在这个目录中
Registry客户端:
1、下载一个镜像并给镜像添加标签(要上传的镜像名需要注明私有仓库的IP)
由于我们使用的私有镜像,在上传或下载的时间,都需要我们将镜像的名称直接重命名,要注明它私有仓库的IP地点:暴露端口。切记是必须,否则将辨认不到仓库而上传或下载失败。
docker pull nginx:1.20

docker tag nginx:1.20 192.168.10.11:5000/nginx

docker images

2、编辑Docker配置文件(需指定私有仓库可以http方式访问)
由于docker默认是从dockehub上下载镜像的,需要在本地指定一下私有仓库的IP加端口,这是由于 Docker默认不允许非HTTPS 方式推送镜像。 假如没做这一步,会报HTTPS的错。
在客户机上编辑docker的配置文件,指定私有仓库地点
vim /etc/docker/daemon.json
添加:
,
 "insecure-registries":["192.168.10.11:5000"]

重新加载systemd、重启Docker服务
systemctl daemon-reload
systemctl restart docker
上传镜像到仓库测试:
docker push 192.168.10.11:5000/nginx

3、查看Registry私有仓库镜像
Registry客户端:
查看Registry中所有镜像
curl -XGET http://192.168.10.11:5000/v2/_catalog

-XGET:指定 HTTP 请求方法为 GET(默认就是 GET,所以可以省略)
获取指定镜像(这里是 nginx)的所有标签列表
curl http://192.168.10.11:5000/v2/nginx/tags/list

Registry服务器端:
curl http://localhost:5000/v2/_catalog

4、客户端下载镜像
删除之前上传的镜像
docker rmi 192.168.10.11:5000/nginx:latest

docker pull 192.168.10.11:5000/nginx

docker images

五、Harbor(企业级私有仓库)
Harbor是构建企业级私有docker镜像的仓库的开源办理方案,它是Docker Registry的更高级封装。
它除了提供友好的Web UI界面,脚色和用户权限管理,用户操作审计(用户都做了哪些操作)等功能。

Harbor安装有在线安装和离线安装
这里选用离线安装的方式

为了制止冲突,删除Registry仓库的所有配置
Registry服务端:
docker rm -f $(docker ps -aq)
docker rmi $(docker images -q)
rm -rf /registry/
Registry客户端:
docker rmi 192.168.10.11:5000/nginx:latest

Harbor服务端配置:
1、下载docker-compose工具
docker-compse工具的作用是编排镜像,可以像剧本一样把要做的事先规划好,比方要启动的镜像、镜像名字、运行机制、数据卷,实现更加便捷、快速。
harbor安装好之后会有一个docker-compose.yml文件,安装docker-compse工具就是为了支持这个功能从github上下载docker-compse工具(需vpn连接下载
下载地点:https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-linux-x86_64

将docker-compose-linux-x86_64包上传到/root目录,移动并改名到/usr/local/bin/目录(直接下载到环境变量目录)
mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose

增长可执行权限
chmod +x /usr/local/bin/docker-compose

查看版本号并验证下令可用性
docker-compose -v

2、Harbor离线模式安装
有在线和离线两种方式,考虑到网速缘故原由,这里我们采用离线下载方式(需vpn连接下载)。
下载地点:https://github.com/goharbor/harbor/releases/download/v2.8.3/harbor-offline-installer-v2.8.3.tgz

将harbor-offline-installer-v2.8.3.tgz包上传到/root目录并将Harbor包解压到/usr/local/目录
tar xf harbor-offline-installer-v2.8.3.tgz -C /usr/local/

3、拷贝Harbor配置文件并修改
cd /usr/local/harbor/
cp harbor.yml.tmpl harbor.yml

vim harbor.yml
修改:



4、安装Harbor(安装完成后会自行启动)
./prepare   ——预备环境和天生配置文件
查抄体系环境:验证 Docker 和 Docker Compose 是否已安装,并查抄其版本是否满足要求。
天生配置文件:根据 harbor.yml 配置文件天生 Harbor 所需的实际配置文件。
初始化数据:为 Harbor 的数据库、Redis 等组件天生初始数据。
预备存储:根据配置预备 Harbor 的存储目录。

./install.sh       ——启动 Harbor 的所有服务容器
启动 Harbor 服务:根据 docker-compose.yml 文件启动 Harbor 的所有容器。
初始化 Harbor:完成 Harbor 的初始化工作,包括数据库、Redis、Registry 等组件的启动和配置。
验证安装:确保 Harbor 的所有服务正常运行。

5、查看容器状态
docker ps -a

harbor不能启动时,可能缘故原由是关闭防火墙后,docker服务未重启,此时只要将docker服务重启即可
6、服务启动下令
启动服务(首次或重新启动)
docker-compose up -d
制止服务,不删除容器
docker-compose stop
重启服务
docker-compose restart
7、使用浏览器访问Harbor网站并登录
浏览器输入192.168.10.11



Harbor客户端配置
1、修改Docker配置文件
vim /etc/docker/daemon.json
修改:

注:指定多个私有仓库时的语法,  "insecure-registries": ["192.168.10.11","192.168.10.12"]
重新加载systemd、重启Docker服务
systemctl daemon-reload
systemctl restart docker
2、客户端登录Harbor
docker login -u admin -p Harbor12345 192.168.10.11

3、上传私有镜像到Harbor
天生新镜像名称:
镜像名称要修改成:私有仓库ip/项目名称/镜像名称
docker tag nginx:1.20 192.168.10.11/library/nginx

docker images

docker push 192.168.10.11/library/nginx

4、查看上传到Harbor的镜像


5、客户端下载镜像
删除镜像
docker rmi 192.168.10.11/library/nginx

docker images

docker pull 192.168.10.11/library/nginx

docker images


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

笑看天下无敌手

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表