docker仓库-管理镜像

4 篇文章 0 订阅
1 篇文章 0 订阅

docker仓库,用来管理镜像。主要分为公共仓库和私人仓库。下面介绍了公共仓库Docker Hub、私人仓库Registry和harbor。

1、使用公共仓库Docker Hub管理镜像

先注册账户,网址 https://hub.docker.com/

在docker客户端:

(1)登录docker hub: 

docker login

 会提示输入用户和密码。若不登录会出现权限问题:denied:requested access to the resource is denied

(2)推镜像到Docker Hub:

docker tag [已有的镜像] [用户名/仓库名:tag标识]

    比如:docker tag openjdk:latest 1506776593/openjdk:latest

docker push [用户名/仓库名:tag标识]

    比如:docker push 1506776593/openjdk:latest

此时可以登录https://hub.docker.com/可以看见这个上传的镜像

2、使用私人仓库Registry管理镜像

在这个网址(https://hub.docker.com/)先查询官方registry镜像,看有哪些版本,下面使用registry:2版本

在docker客户端:

(1)拉取registry:

docker pull registry:2

(2)启动registry:

docker run -d -p 5000:5000 --restart always --name registry registry:2

(3)推送镜像:

docker tag [已有的镜像] [localhost:5000/仓库名:tag标识]

    比如:docker tag openjdk:latest localhost:5000/openjdk:latest

docker push [localhost/仓库名:tag标识]

    比如:docker push localhost:5000/openjdk:latest

参见官网: https://hub.docker.com/_/registry

3、使用企业级仓库Harbor管理镜像

使用registry的缺点:只要registry主机宕机,那么上面的镜像就不见了。为了解决这个问题Harbor出现了,它不经可以水平扩展,解决了registry的问题,还提供了UI界面,只是这两点就会让人用它了,下面开始搭建一个单机版Harbor。

(1)准备环境:

一台装Linux系统的主机(下面使用的是ubuntu16.04,自带python), 安装docker 17.06.0-ce及以上、docker-compose 1.18.0及以上 等

安装docker:参考 https://blog.csdn.net/weixin_42146764/article/details/98474298

ubuntu上安装docker-compose1.18:

sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

添加权限:
chmod +x /usr/local/bin/docker-compose

查看版本,可以验证是否安装成功:
docker-compose -v  #出现版本号表示安装成功

 

(2)到github上搜索harbor,下载某个版本的tar.gz包(Release版本的)

提供一个下载网址: https://github.com/goharbor/harbor/releases

说明一下可以离线安装或在线安装,我采用的是离线安装

下载版本为: harbor-offline-installer-v1.8.2.tgz

(3)解压缩,并进入harbor目录

tar xvf harbor-offline-installer-v1.8.2.tgz

cd harbor

(4)修改配置文件harbor.yml内容:

vi harbor.yml

可以只修改hostname,IP是安装harbor的宿主机的IP,下面会使用,比如 

hostname: 192.168.0.241  

#这里只修改了hostnam,其他默认了,可以按需求设置

(5)运行prepare

./prepare 
或 
sh prepare

(6)运行install.sh

./install 
或 
sh install.sh

出现下面的提示表示安装成功

可以在浏览器输入<IP>即可登录harbor UI,用户名admin, 密码默认是Harbor12345,可以在 harbor.yml中修改

(7)docker客户端需要配置insecure-registry,否则会报错

先说明一下,必须配置这一步,不然有得你难受了,不配置这个遇到的坑:

Error response from daemon: Get https://hub.carlos666.com/v2/: dial tcp: lookup hub.carlos666.com on 10.0.2.3:53: no such host
# no such host,主要可能是host文件不存在这个映射

Error response from daemon: Get https://192.168.0.241/v2/: dial tcp 192.168.0.241:443: connect: connection refused
#没有配置insecure-registry或者docker 登录(login)harbor库地址(hostname)写错

Error response from daemon: Get http://hub.carlos666.com/v2/: dial tcp: lookup hub.carlos666.com on 10.0.2.3:53: read udp 10.0.2.15:60329->10.0.2.3:53: i/o timeout

Error response from daemon: Get https://192.168.0.241:80/v2/: http: server gave HTTP response to HTTPS client

上述是我出现过的问题,去度娘查了按照其他人的设置,就是不成功。当然,也查到过我下面的配置,也配置过,就是没成功,总结就是配置未生效,所以不想入坑,请好好看下面的步骤。

现在docker支持多种操作系统,下面分系统说明配置,但要说一句就是只要docker客户端想要访问Harbor,那么就得配置insecure-registry

(7.1)docker客户端在window上

这个docker装在名为default的VM,那么要设置Docker就先得进入VM

a.进入VM

docker-machine ssh default

或者使用远程连接工具,如XShell:IP是192.168.99.100,用户名docker,密码tcuser

b.修改文件 /var/lib/boot2docker/profile

sudo vi /var/lib/boot2docker/profile

在--label provider=virtualbox下面添加一行:--insecure-registry=[IP或域名】  ,比如 

--insecure-registry=192.168.0.241:80   

#192.168.0.241是安装harbor的宿主机的IP,上面在harbor.yml文件中配置的,若harbor.yml文件配置的是域名就使用域名

c.重启docker

sudo /etc/init.d/docker restart

(7.2)docker客户端在Linux上

a.修改文件/etc/docker/daemon.json

在其中加入下面的语句:

{

  "insecure-registries":["192.168.0.241:80"]

}

若配置了加速镜像IP,需要加上逗号分开,如

{

  "registry-mirrors": ["https://7z6goecq.mirror.aliyuncs.com"],

  "insecure-registries":["192.168.0.241:80"]

}

其中,192.168.0.241是安装harbor的宿主机的IP,上面在harbor.yml文件中配置的,若harbor.yml文件配置的是域名就使用域名,下面不再说明

b.重启docker

systemctl daemon-reload

systemctl restart docker

(8)重启harbor

若是docker客户端与服务端不在同一个主机上,这步可以跳过。否则最好重启harbor,不然配置可能没生效,我就被这个问题折磨了两小时。

进入到存放docker-compose.yml目录(harbor目录),执行下列命令

docker-compose restart

#上面的语句执行若出现某个服务error,就执行下面的语句,按理说,直接执行下面命令即可

docker-compose down

docker-compose up -d

(9)登录并推送镜像

在UI界面登录之后创建一个项目,如micro-service

(9.1)登录harbor

docker login 192.168.0.241:80

用户名admin, 密码Harbor12345

(9.2)推送镜像

docker tag openjdk:latest 192.168.0.241:80/micro-service/openjdk:latest

docker push 192.168.0.241:80/micro-service/openjdk:latest

(9.3)验证

UI界面在项目micro-service里面查看是否有openjdk。

没有废话,全是实战总结的。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值