八、docker私有仓库registry相关知识

目录

一、docker registry方式

1、通过http的方式搭建入门级docker registry仓库

1、下载仓库镜像

2、创建私有仓库容器

3、验证私有仓库是否启动成功

4、打包镜像

5、将打包好的镜像上传到私有仓库

6、查看私有仓库中的镜像

7、从仓库拉取镜像

8、删除镜像

2、通过https的方式搭建docker registry仓库

1、证书获取的方法

2、启动命令

3、带有登录认证的registry

 

一、docker registry方式

1、通过http的方式搭建入门级docker registry仓库

1、下载仓库镜像

docker pull registry:2

如下图所示:

2、创建私有仓库容器

docker run --name registry --restart=always -p 5000:5000 -v /myregistry:/var/lib/registry -d registry:2

如下图所示:

3、验证私有仓库是否启动成功

4、打包镜像

docker tag letms/kafka 127.0.0.1:5000/mykafka

5、将打包好的镜像上传到私有仓库

docker push 127.0.0.1:5000/mykafka

注意:可能会出现无法push镜像到私有仓库的问题。这是因为我们启动的registry服务不是安全可信赖的。

解决方法如下:

修改docker的配置文件/etc/docker/daemon.json

添加"insecure-registries": ["127.0.0.1:5000"],

如下所示:

保存,退出后。重启docker。

6、查看私有仓库中的镜像

通过浏览器访问:http://127.0.0.1:5000/v2/_catalog

直接在终端通过命令访问:curl http://127.0.0.1:5000/v2/_catalog

7、从仓库拉取镜像

docker pull 127.0.0.1:5000/mykafka

注意:有可能会拉取失败

这个时候注意看一下你服务器的时间,要把时间进行同步更新。设置东八区,选择上海时区,并校验服务器的时间,再次尝试,拉取镜像!

8、删除镜像

方法一:

    直接去挂载的目录中,找到镜像对应的文件夹,直接删除。此方法比较暴力。

方法二:

    常规方法,参见这篇文章https://blog.csdn.net/Fickle_actor/article/details/88929637?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control

2、通过https的方式搭建docker registry仓库

通过https的方式搭建,方法与上面的相同。区别主要有两点。第一点,需要有自己的证书。第二点,需要修改registry的启动命令,添加证书之类的参数。

1、证书获取的方法

A、购买正规的https证书

B、使用自签发证书

   使用自签证书,参见这篇官方链接https://docs.docker.com/registry/insecure/

2、启动命令

docker run -d -p 443:5000   \
--restart=always \
--name registry
-v H:/registry/certs:/certs  \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/brain.crt  \
-e REGISTRY_HTTP_TLS_KEY=/certs/brain.key \
-v /opt/myregistry:/var/lib/registry \
registry

3、带有登录认证的registry

实现访问限制的最简单方法是通过基本身份验证(这与其他Web服务器的基本身份验证机制非常相似)。本示例使用本机基本身份验证htpasswd来存储机密。

注意:只有https方式创建的仓库,才能有用户名密码的验证。

A、创建一个密码文件

创建一个用户名为testuser,密码为testpassword的账号

$ mkdir auth
$ docker run \
  --entrypoint htpasswd \
  registry:2 -Bbn testuser testpassword > auth/htpasswd

B、启动命令

docker run -d -p 443:5000   \
--restart=always \
--name registry
-v /opt/auth:/auth \
-e REGISTRY_AUTH=htpasswd \
-e REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-v /opt/certs:/certs  \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/brain.crt  \
-e REGISTRY_HTTP_TLS_KEY=/certs/brain.key \
-v /opt/myregistry:/var/lib/registry \
registry

C、登录仓库

现在从仓库拉取或者上传镜像都会报错。需要先登录仓库,命令如下:

docker login brain

输入用户名:testuser

输入密码:testpassword

登录成功后

cd /root/.docker

#认证成功后的信息会自动记录在该文件中,即第一次认证之后再上传镜像便无需在做认证

cat config.json

#可以查看认证的信息

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值