搭建本机测试用镜像私服docker registry常用命令汇总与说明

本文为原创文章,欢迎转载,转载时需附上本文的原文链接

网上介绍如何搭建生产用registry的内容比较多,但对于自己的本机开发测试用环境来说,大多太复杂。
仔细看了官网这一部份的文档后,发现只本机环境的搭建其实很简单,每次都要去看官网英文不方便,这里结合官网的示例命令,作一个记录方便以后自己查看备忘,有需要的朋友也可以参考。官网registry搭建文档地址

搭建镜像私服服务器

从docker hub中央镜像仓库拉取registry2镜像到本地:
$ docker pull registry:2
运行registry:2容器:
docker run -d
  -p 5000:5000 
  #-e REGISTRY_HTTP_ADDR=0.0.0.0:5001  
  --restart=always 
  --name registry
  -v /mnt/registry:/var/lib/registry
  registry:2

*上述参数作用如下:

  • -d:以守护进程方式运行。

  • -p 5000:5000:将主机的5000端口映射到容器的5000端口,第1个5000指主机端口号,第2个5000是registry容器的真实监听端口。其中主机端口号可直接在参数中修改,但第2个容器端口号只能通过给容器添加环境变量的方式修改。例如上面的 + -e REGISTRY_HTTP_ADDR=0.0.0.0:5001

  • –restart=always:当容器重启/退出的时候,自动重启,便于一直可用。官方文档的原话是to restart automatically when Docker restarts or if it exits

  • –name registry:为容器指定一个名字,便于后续的docker contrainer相关的命令引用,否则会自动生成一个乱叉容器id,每次都要docker ps命令去查。

  • -v /mnt/registry:/var/lib/registry:将主机的/mnt/registry目录mount到容器的/var/lib/registry目录,容器的/var/lib/registry目录是具体存放docker image的位置。这个参数的作用在于将所有image统一放在外部主机的一个固定目录中,便于管理。

从Docker Hub拷贝一个镜像到自己的私服中(目的是测试一下,上面的服务器OK不)

例如从Docker Hub拉取ubuntu:16.04镜像
$ docker pull ubuntu:16.04
重新打标记
$ docker tag ubuntu:16.04 localhost:5000/my-ubuntu

注意标记斜杠前面的部分localhost:5000,当push的时候docker会自动认为是刚刚本机registry容器的地址。官网原话为 When the first part of the tag is a hostname and port, Docker interprets this as the location of a registry, when pushing.

将重新打标后的镜像上传到私服中:
$ docker push localhost:5000/my-ubuntu
移除主机docker中已经存在的镜像
$ docker image remove ubuntu:16.04
$ docker image remove localhost:5000/my-ubuntu

此步的目的是为下一步验证能否直接从私服中重拉取清理环境。

重新从私服中拉取
$ docker pull localhost:5000/my-ubuntu

注:如有更多疑问,欢迎加私友一起探讨学习,我的联系方式可在脑链网上找到

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是搭建镜像中心docker-registrydocker-registry-web的步骤: 1.安装DockerDocker Compose 2.创建一个目录来存储docker-compose.yml文件和证书文件 3.创建docker-compose.yml文件并添加以下内容: ```yaml version: '3' services: registry: restart: always image: registry:2 ports: - 5000:5000 environment: REGISTRY_AUTH: htpasswd REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm REGISTRY_STORAGE_DELETE_ENABLED: "true" REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt REGISTRY_HTTP_TLS_KEY: /certs/domain.key volumes: - ./data:/var/lib/registry - ./auth:/auth - ./certs:/certs registry-web: restart: always image: mkuchin/docker-registry-web:v0.1.2 ports: - 8080:8080 environment: REGISTRY_URL: https://registry:5000 REGISTRY_WEB_TITLE: Docker Registry REGISTRY_AUTH: htpasswd REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt REGISTRY_HTTP_TLS_KEY: /certs/domain.key volumes: - ./auth:/auth - ./certs:/certs ``` 4.创建一个目录来存储证书文件和htpasswd文件 5.生成证书文件 ```shell openssl req -newkey rsa:4096 -nodes -sha256 -keyout domain.key -x509 -days 365 -out domain.crt ``` 6.生成htpasswd文件 ```shell htpasswd -Bc auth/htpasswd <username> ``` 7.启动docker-compose ```shell docker-compose up -d ``` 8.访问https://<your-domain>:8080,输入用户名和密码即可登录docker-registry-web界面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值