Docker 搭建私有仓库

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 为什么要弄私有仓库,大多是为了速度,我们再私有仓库中的push和pull的速度是特别快的。利用registry快速搭建https://hub.docker.

为什么要弄私有仓库,大多是为了速度,我们再私有仓库中的push和pull的速度是特别快的。

利用registry快速搭建

https://hub.docker.com/_/registry/

Run a local registry: Quick Version
$ docker run -d -p 5000:5000 --restart always --name registry registry:2
Now, use it from within Docker:

$ docker pull ubuntu
$ docker tag ubuntu localhost:5000/ubuntu
$ docker push localhost:5000/ubuntu

这是官方的一个小demo。下面是我自己的实践。

# 拉取registry2.0版本
[root@FantJ ~]# docker pull registry:2
Trying to pull repository docker.io/library/registry ... 
2: Pulling from docker.io/library/registry
81033e7c1d6a: Pull complete 
b235084c2315: Pull complete 
c692f3a6894b: Pull complete 
ba2177f3a70e: Pull complete 
a8d793620947: Pull complete 
Digest: sha256:672d519d7fd7bbc7a448d17956ebeefe225d5eb27509d8dc5ce67ecb4a0bce54
Status: Downloaded newer image for docker.io/registry:2
# 后台启动运行
[root@FantJ ~]# docker run -d -p 5000:5000 --restart always --name registry registry:2
ce5b8bfa6d7f535906730ea3a058b00e7cfdaaa20ea0db3c49d700a4e2c8a645
[root@FantJ ~]# docker images
REPOSITORY              TAG                 IMAGE ID            CREATED             SIZE
docker.io/openjdk       8-jre               bef23b4b9cac        2 weeks ago         443 MB
docker.io/fantj/nginx   latest              ae513a47849c        4 weeks ago         109 MB
docker.io/nginx         latest              ae513a47849c        4 weeks ago         109 MB
docker.io/registry      2                   d1fd7d86a825        4 months ago        33.3 MB
# tag 镜像
[root@FantJ ~]# docker tag docker.io/nginx 127.0.0.1:5000/nginx
# 上传到私有仓库
[root@FantJ ~]# docker push 127.0.0.1:5000/nginx
The push refers to a repository [127.0.0.1:5000/nginx]
7ab428981537: Pushed 
82b81d779f83: Pushed 
d626a8ad97a1: Pushed 
latest: digest: sha256:e4f0474a75c510f40b37b6b7dc2516241ffa8bde5a442bde3d372c9519c84d90 size: 948
[root@FantJ ~]# 

缺点:没有可视化管理工具,私有仓库服务宕机造成麻烦,没有用户管理机制、没有操作的记录功能。
优点:搭建操作简单

利用harbor搭建

下载地址:https://storage.googleapis.com/harbor-releases/release-1.5.0/harbor-offline-installer-v1.5.1.tgz

wget https://storage.googleapis.com/harbor-releases/release-1.5.0/harbor-offline-installer-v1.5.1.tgz

tar zxvf harbor-offline-installer-v1.5.1.tgz

cd harbor

修改配置harbor.cfg
hostname = fantj.top:8888 

http还是https啥的自己看着改

保存退出,直接运行install.sh

cd ..
./install.sh

注意一点:harbor默认会占用80端口,所以请确保你的80端口不被占用,那怎么修改呢?

修改配置docker-compose.yml(需要改端口再进行)

将80:80的第一个80改为自定义的端口号

我在这里改成8888端口。

然后运行install.sh

......
[Step 4]: starting Harbor ...
Creating network "harbor_harbor" with the default driver
Creating harbor-log
Creating redis
Creating registry
Creating harbor-db
Creating harbor-adminserver
Creating harbor-ui
Creating nginx
Creating harbor-jobservice

 ----Harbor has been installed and started successfully.----

Now you should be able to visit the admin portal at http://fantj.top:8888 . 
For more details, please visit https://github.com/vmware/harbor .

好的,成功了,我们来访问一下。


img_9455a4612e5871f4b242d9dc49882168.png

默认账号密码:
admin
Harbor12345

如果想修改,去harbor.cfg修改。

[root@FantJ harbor]# docker ps
CONTAINER ID        IMAGE                                  COMMAND                  CREATED             STATUS                   PORTS                                                                NAMES
ea66b87c5d26        vmware/harbor-jobservice:v1.5.1        "/harbor/start.sh"       7 minutes ago       Up 7 minutes                                                                                  harbor-jobservice
5fecbc47ea68        vmware/nginx-photon:v1.5.1             "nginx -g 'daemon ..."   7 minutes ago       Up 7 minutes (healthy)   0.0.0.0:443->443/tcp, 0.0.0.0:4443->4443/tcp, 0.0.0.0:8888->80/tcp   nginx
9ccfa0d137de        vmware/harbor-ui:v1.5.1                "/harbor/start.sh"       7 minutes ago       Up 7 minutes (healthy)                                                                        harbor-ui
b1f6387545d6        vmware/harbor-db:v1.5.1                "/usr/local/bin/do..."   7 minutes ago       Up 7 minutes (healthy)   3306/tcp                                                             harbor-db
6bcd46635374        vmware/registry-photon:v2.6.2-v1.5.1   "/entrypoint.sh se..."   7 minutes ago       Up 7 minutes (healthy)   5000/tcp                                                             registry
c40db866f7d2        vmware/harbor-adminserver:v1.5.1       "/harbor/start.sh"       7 minutes ago       Up 7 minutes (healthy)                                                                        harbor-adminserver
8d0ee20abfbf        vmware/redis-photon:v1.5.1             "docker-entrypoint..."   7 minutes ago       Up 7 minutes             6379/tcp                                                             redis
17c002dd8b98        vmware/harbor-log:v1.5.1               "/bin/sh -c /usr/l..."   7 minutes ago       Up 7 minutes (healthy)   127.0.0.1:1514->10514/tcp                                            harbor-log
[root@FantJ harbor]# docker images
REPOSITORY                    TAG                 IMAGE ID            CREATED             SIZE
vmware/redis-photon           v1.5.1              19245c7a4f51        3 days ago          207 MB
vmware/clair-photon           v2.0.1-v1.5.1       e7f0ab982469        3 days ago          303 MB
vmware/notary-server-photon   v0.5.1-v1.5.1       611385e920c3        3 days ago          211 MB
vmware/notary-signer-photon   v0.5.1-v1.5.1       f9e01495db0e        3 days ago          209 MB
vmware/registry-photon        v2.6.2-v1.5.1       2efae6b250b1        3 days ago          198 MB
vmware/nginx-photon           v1.5.1              90d35cd72a68        3 days ago          135 MB
vmware/harbor-log             v1.5.1              67000769dfac        3 days ago          200 MB
vmware/harbor-jobservice      v1.5.1              3f7a7987ca5b        3 days ago          194 MB
vmware/harbor-ui              v1.5.1              8dbe945233a8        3 days ago          212 MB
vmware/harbor-adminserver     v1.5.1              a11b8eb3f9d8        3 days ago          183 MB
vmware/harbor-db              v1.5.1              afa780d73279        3 days ago          526 MB
vmware/mariadb-photon         v1.5.1              59ed57632415        3 days ago          526 MB
vmware/postgresql-photon      v1.5.1              41b693c0ce50        3 days ago          221 MB
docker.io/openjdk             8-jre               bef23b4b9cac        2 weeks ago         443 MB
vmware/harbor-migrator        v1.5.0              466c57ab0dc3        4 weeks ago         1.16 GB
127.0.0.1:5000/nginx          latest              ae513a47849c        4 weeks ago         109 MB
docker.io/fantj/nginx         latest              ae513a47849c        4 weeks ago         109 MB
docker.io/nginx               latest              ae513a47849c        4 weeks ago         109 MB
vmware/photon                 1.0                 4b481ecbef2a        5 weeks ago         130 MB
docker.io/registry            2                   d1fd7d86a825        4 months ago        33.3 MB

可以看到我们的进程和镜像都多了很多的以vmware开头的(harbor是vmware公司的开源工具).

好了,开始push测试

[root@FantJ harbor]# docker tag docker.io/nginx fantj.top:8888/internet-plus/nginx
[root@FantJ harbor]# docker push fantj.top:8888/internet-plus/nginx
The push refers to a repository [fantj.top:8888/internet-plus/nginx]
Get https://fantj.top:8888/v1/_ping: dial tcp: lookup fantj.top: no such host

它提示需要用https请求才安全,解决方式有两种:
第一种:docker启动的时候添加对域名+端口的信任 --insecure-registry=xxxx.xx.xx.xx:8888
第二种:添加ssl证书,改天更新

Harbor重启

#docker-compose stop
# ./install.sh
相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
2月前
|
Docker 容器
Docker自建仓库之Harbor高可用部署实战篇
关于如何部署Harbor高可用性的实战教程,涵盖了从单机部署到镜像仓库同步的详细步骤。
108 15
Docker自建仓库之Harbor高可用部署实战篇
|
2月前
|
存储 Kubernetes Cloud Native
部署Kubernetes客户端和Docker私有仓库的步骤
这个指南涵盖了部署Kubernetes客户端和配置Docker私有仓库的基本步骤,是基于最新的实践和工具。根据具体的需求和环境,还可能需要额外的配置和调整。
69 1
|
24天前
|
网络协议 应用服务中间件 nginx
私有的docker私有镜像站仓库harbor
私有的docker私有镜像站仓库harbor
|
2月前
|
存储 测试技术 数据安全/隐私保护
Docker自建仓库之Harbor部署实战
关于如何部署和使用Harbor作为Docker企业级私有镜像仓库的详细教程。
354 12
|
2月前
|
Docker 容器
Docker Hub镜像公共仓库使用
这篇文章介绍了如何使用Docker Hub公共仓库进行镜像的创建、上传、下载和管理。
756 8
|
2月前
|
运维 数据安全/隐私保护 Docker
Docker自建仓库之Docker Registry部署实战
关于如何使用Docker Registry镜像搭建本地私有Docker仓库的实战教程,包括了下载镜像、创建授权目录和用户名密码、启动Registry容器、验证端口和容器、测试登录仓库、上传和下载镜像的详细步骤。
481 5
|
3月前
|
存储 Docker 容器
阿里云私有docker仓库构建海外镜像
【8月更文挑战第25天】
245 3
|
4月前
|
存储 Docker 容器
入职必会-开发环境搭建50-Docker必会搭建Docker私有仓库
Docker官方的Docker hub(https://hub.docker.com)是一个用于管理公共镜像的仓库,我们可以从上面拉取镜像到本地也可以把我们自己的镜像推送上去。但是有时候我们的服务器无法访问互联网或者不希望将自己的镜像放到公网当中,那么我们就需要搭建自己的Docker私有仓库来存储和管理自己的Docker镜像。
入职必会-开发环境搭建50-Docker必会搭建Docker私有仓库
|
2月前
|
应用服务中间件 nginx 数据安全/隐私保护
使用Harbor搭建Docker私有仓库
Harbor是一款开源的企业级Docker仓库管理工具,分为私有与公有仓库两种类型,其中私有仓库被广泛应用于运维场景。Harbor提供图形化界面,便于直观操作,并且其核心组件均由容器构建而成,因此安装时需预先配置Docker及docker-compose。Harbor支持基于项目的用户与仓库管理,实现细粒度的权限控制;具备镜像复制、日志收集等功能,并可通过UI直接管理镜像,支持审计追踪。部署Harbor涉及配置文件调整、登录认证等步骤,并可通过客户端进行镜像的上传、拉取等操作。系统内置多种角色,包括受限访客、访客、开发者、维护人员及管理员,以满足不同场景下的使用需求。
112 0
|
4月前
|
Ubuntu Java Docker
docker 搭建私有仓库并发布私有镜像
docker 搭建私有仓库并发布私有镜像
377 1