当前位置:   article > 正文

安装私有镜像仓库-docker-registry+docker-registry-web(镜像仓库+镜像仓库管理界面)_安装私有镜像仓库-docker-registry+docker-registry-web(镜像仓库+

安装私有镜像仓库-docker-registry+docker-registry-web(镜像仓库+镜像仓库管理界

(私有容器服务器)   192.168.192.114  ,安装  registry  、docker-registry-web

(测试)  192.168.192.112 

 

安装registry

 

安装docker

首先在114上安装docker


[root@testnode04 ~]# vim /etc/docker/daemon.json

  1. {
  2. "registry-mirrors": ["https://cxuueihg.mirror.aliyuncs.com"]
  3. }


[root@testnode04 ~]# sudo systemctl daemon-reload
[root@testnode04 ~]# systemctl start docker
 

 

运行registry


[root@testnode04 ~]# docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest

参数说明

-itd:在容器中打开一个伪终端进行交互操作,并在后台运行;

-v:把宿主机的/data/registry目录绑定 到 容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;

-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了;

--restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;

--name registry:创建容器命名为registry,你可以随便命名;

registry:latest:这个是刚才pull下来的镜像;

-----------------------------------------------------

测试

http://192.168.192.114:5000/v2/_catalog

 

安装  docker-registry-web

一、为什么要增加webUI

    1、增加仓库的可读性

    2、方便所有使用仓库的人查看

二、用哪个WEBUI来做

docker-registry-web

     

三、具体步骤

    1、拉取镜像

docker pull hyper/docker-registry-web

    2、启动webui同时连接仓库

docker run -d --restart=always -p 5001:8080 --name registry-web --link registry -e REGISTRY_URL=http://192.168.192.114:5000/v2 -e REGISTRY_NAME=192.168.192.114:5000 hyper/docker-registry-web

这里的--link 是上面的容器名registry

docker run --link的作用

docker run --link可以用来链接2个容器,使得源容器(被链接的容器)和接收容器(主动去链接的容器)之间可以互相通信,并且接收容器可以获取源容器的一些数据,如源容器的环境变量。

--link的格式:

--link <name or id>:alias 

 

四、访问结果

 

 

 

 

 

 

如果命令是:

 

docker run -d --restart=always -p 5001:8080 --name registry-web --link registry -e REGISTRY_URL=http://192.168.192.114:5000/v2 -e REGISTRY_NAME=localhost:5000 hyper/docker-registry-web

结果就是IP,否则是localhost

http://192.168.192.114:5001

 

 

4、测试镜像仓库(测试端操作)

4.1 修改下镜像源并重启docker服务

  1. [root@node ~]# vim /etc/docker/daemon.json
  2. {
  3. "registry-mirrors": [ "https://registry.docker-cn.com"]
  4. }
  5. [root@node ~]# systemctl restart docker

自己的阿里云更快:

  1. {
  2.   "registry-mirrors": ["https://cxuueihg.mirror.aliyuncs.com"]
  3. }

 

4.1 下载busybox镜像(测试用)

  1. [root@node ~]# docker pull busybox
  2. [root@node ~]# docker images
  3. REPOSITORY TAG IMAGE ID CREATED SIZE
  4. busybox latest f6e427c148a7 36 hours ago 1.15MB

4.2 为镜像打标签

这里可以理解为重命名,貌似这名太长了。192.168.192.114:5000/busybox:v1

[root@node ~]# docker tag busybox:latest  192.168.192.114:5000/busybox:v1

 

格式说明:Usage:     docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]

busybox:lastest 这是源镜像,也是刚才pull下来的镜像文件;
192.168.192.114:5000/busybox:v1:这是目标镜像,也是registry私有镜像服务器的IP地址和端口;

查看一下打好的tag:
docker:用registry快速搭建私有镜像仓库

4.3 上传到镜像服务器

  1. [root@testnode02 config]# docker push 192.168.192.114:5000/busybox:v1
  2. The push refers to repository [192.168.192.114:5000/busybox]
  3. Get https://192.168.192.114:5000/v2/: http: server gave HTTP response to HTTPS client

注意了,这是报错了,需要https的方法才能上传,我们可以修改下daemon.json来解决:

  1. [root@node ~]# vim /etc/docker/daemon.json
  2. {
  3. "registry-mirrors": [ "https://registry.docker-cn.com"],
  4. "insecure-registries": [ "192.168.192.114:5000"]
  5. }

或,用阿里云镜像。

  1. {
  2.   "registry-mirrors": ["https://cxuueihg.mirror.aliyuncs.com"],
  3. "insecure-registries": [ "192.168.192.114:5000"]
  4. }

 

这里一定要注意格式,上面的,不要漏了逗号

 

添加私有镜像服务器的地址,注意书写格式为json,有严格的书写要求,然后重启docker服务:

[root@node ~]# systemctl  restart docker

在次上传可以看到没问题 了:

  1. [root@node ~]# docker push 192.168.192.114:5000/busybox:v1
  2. The push refers to repository [172.18.18.90:5000/busybox]
  3. c5183829c43c: Pushed
  4. v1: digest: sha256:c7b0a24019b0e6eda714ec0fa137ad42bc44a754d9cea17d14fba3a80ccc1ee4 size: 527

4.4 测试下载镜像

上传测试没问题了,我们接下来测试一下从registry服务器上下载刚才上传的busybox镜像,先删除node主机上的镜像:

  1. [root@node ~]# docker rmi -f $(docker images -aq)
  2. Untagged: 172.18.18.90:5000/busybox:v1
  3. Untagged: 172.18.18.90:5000/busybox@sha256:c7b0a24019b0e6eda714ec0fa137ad42bc44a754d9cea17d14fba3a80ccc1ee4
  4. Untagged: busybox:latest
  5. Untagged: busybox@sha256:2107a35b58593c58ec5f4e8f2c4a70d195321078aebfadfbfb223a2ff4a4ed21
  6. Deleted: sha256:f6e427c148a766d2d6c117d67359a0aa7d133b5bc05830a7ff6e8b64ff6b1d1d
  7. Deleted: sha256:c5183829c43c4698634093dc38f9bee26d1b931dedeba71dbee984f42fe1270d

查看一下node主机上的镜像全部删除了:

  1. [root@node ~]# docker images
  2. REPOSITORY TAG IMAGE ID CREATED SIZE

这是删除所有。。

----------------------------------------------------------------------------------------------------------------------------------------------------------

因为这两个busybox有关系,不能按同一个 容器ID删除。只删除busybox的话,

要先以名字删除源镜像,

[root@testnode02 config]# docker rmi busybox

再以容器ID删除打标记的busybox

[root@testnode02 config]# docker rmi be5888e67be6

 


 

然后,从registry服务器上下载busybox镜像:

  1. [root@testnode02 config]# docker pull 192.168.192.114:5000/busybox:v1
  2. v1: Pulling from busybox
  3. e2334dd9fee4: Pull complete
  4. Digest: sha256:a2490cec4484ee6c1068ba3a05f89934010c85242f736280b35343483b2264b6
  5. Status: Downloaded newer image for 192.168.192.114:5000/busybox:v1
  6. 192.168.192.114:5000/busybox:v1
  7. [root@testnode02 config]# docker images
  8. REPOSITORY TAG IMAGE ID CREATED SIZE
  9. test/config latest 202a0f54ef9a 2 hours ago 197MB
  10. hub.c.163.com/15112673242/config latest 202a0f54ef9a 2 hours ago 197MB
  11. hub.c.163.com/l690452074/config latest 202a0f54ef9a 2 hours ago 197MB
  12. test/eureka latest cc7494b99744 5 hours ago 186MB
  13. 192.168.192.114:5000/busybox v1 be5888e67be6 4 days ago 1.22MB
  14. mongo latest 97a9a3e85158 4 weeks ago 386MB
  15. mysql latest 9b51d9275906 6 weeks ago 547MB
  16. rancher/server stable 4caa4fca1acd 6 months ago 1.08GB
  17. hub.c.163.com/library/java 8-alpine d991edd81416 3 years ago 145MB

列出所有镜像:

  1. [root@testnode02 config]# curl http://192.168.192.114:5000/v2/_catalog
  2. {"repositories":["busybox"]}
  3. 列出busybox镜像有哪些tag:
  4. [root@testnode02 config]# curl http://192.168.192.114:5000/v2/busybox/tags/list
  5. {"name":"busybox","tags":["v1"]}

 

参考: 

https://www.cnblogs.com/pcct/p/12127832.html

http://www.mamicode.com/info-detail-2517813.html

http://www.mamicode.com/info-detail-2883832.html

https://blog.51cto.com/joeyang/2116977

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/95801
推荐阅读
相关标签
  

闽ICP备14008679号