手把手教学-Docker Registry 搭建

前言

经过本文你将学习到如下技能:web

  • 如何建立Docker本地私有镜像仓库
  • 如何推送镜像到私有仓库

非认证方式

[root@k8s-master ~]$ docker run -d -p 5000:5000 --restart=always -v /opt/data/registry:/var/lib/registry --name registry registry:2.4.1
复制代码

认证方式

# opt下建立文件夹
[root@k8s-master ~]$ cd /opt && mkdir registry && mkdir /opt/registry/auth  # 建立帐号密码 [root@k8s-master ~]$ docker run --entrypoint htpasswd registry:2.4.1 -Bbn owater 123456 >> /opt/registry/auth/htpasswd  # 运行 [root@k8s-master ~]$ docker run -d -p 5000:5000 --restart=always \  --name registry \  -v /opt/registry/auth/:/auth/ \  -e "REGISTRY_AUTH=htpasswd" \  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \  -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \  -v /opt/registry/:/var/lib/registry/ \  registry:2.4.1 复制代码
配置信息
# 开启远程访问
[root@k8s-master ~]$ vi /usr/lib/systemd/system/docker.service  # 将如下内容 ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock # 修改为以下 ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock   # 让Docker支持http上传镜像 [root@k8s-master ~]$ echo '{ "insecure-registries":["http://10.8.135.104:5000"] }' > /etc/docker/daemon.json  # 使配置生效 [root@k8s-master ~]$ systemctl daemon-reload  # 从新启动Docker服务 [root@k8s-master ~]$ systemctl restart docker  # 开启防火墙的Docker构建端口 [root@k8s-master ~]$ firewall-cmd --zone=public --add-port=2375/tcp --permanent [root@k8s-master ~]$ firewall-cmd --reload 复制代码
查看仓库镜像

非认证方式能够经过命令查看docker

[root@k8s-master ~]$ curl http://IP:5000/v2/_catalog
复制代码

认证方式,须要界面登陆 http://IP:5000/v2/_catalog json

推送镜像到私有仓库

# 登陆私有库
[root@k8s-master ~]$ docker login --username=[用户名] IP:5000  # 给镜像打标签,docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG] [root@k8s-master ~]$ docker tag k8s-owater/kubedocker:0.0.1-SNAPSHOT 10.8.135.104:5000/k8s-owater/kubedocker:0.0.1-SNAPSHOT  # 推送私有镜像 [root@k8s-master ~]$ docker push k8s-owater/kubedocker:0.0.1-SNAPSHOT 复制代码

删除镜像

# docker exec <Registry-容器名> rm -rf /var/lib/registry/docker/registry/v2/repositories/<镜像名>
[root@k8s-master ~]$ docker exec registry rm -rf /var/lib/registry/docker/registry/v2/repositories/k8s-owater/kubedocker  # docker exec <Registry-容器名> bin/registry garbage-collect /etc/docker/registry/config.yml [root@k8s-master ~]$ docker exec registry bin/registry garbage-collect /etc/docker/registry/config.yml 复制代码

本文使用 mdnice 排版curl

相关文章
相关标签/搜索