Docker | 教你搭建属于自己的镜像仓库

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: Docker | 教你搭建属于自己的镜像仓库

金三银四马上就要到了,咸鱼在找工作的时候发现不少岗位对算法以及Docker的要求比重又双叒叕增加了,所以咸鱼准备了一份算法合集,助你一臂之力~ Docker看系列文章就好。

后台回复「算法」即可获取

下面进入今天的正题:

学了这么久的Docker,相信大家也根据自己的需求构建了不少的镜像,但是打包,上传镜像太过麻烦,如果有一个属于自己的仓库来存放岂不美哉?

想用哪个就下哪个,学完这篇你距离拥有自己的Docker兵器库就不远了。

什么是Docker仓库

  • Docker仓库就是存放docker镜像并有docker pull方法下载的云环境

docker pull 用法可以参考docker系列文章的第一篇:

  • Docker仓库分为公有仓库和私有仓库。
  • 公有仓库指Docker Hub(官方)等开放给用户使用、允许用户管理镜像。
  • 私有仓库指由用户自行搭建的存放镜像的云环境。

如何搭建无认证私有仓库

主要步骤如下:

  • 第一步:在需要搭建仓库的服务器上安装docker。
  • 第二步:在服务器上,从docker hub下载registry仓库
    docker pull registry
  • 第三步:在服务器上,启动仓库
docker run -d -ti --restart always\
        --name my-registry\
        -p 8000:5000\
        -v /my-registry/registry:/var/lib/registry\
 registry
  • 注意:registry内部对外开放端口是5000。默认情况下,会镜像存放于容器内的/var/lib/registry(官网Dockerfile中查看)目录下,这样如果容器被删除,则存放于容器中的镜像也会丢失。
  • 注意:本地利用curl 服务器IP:8000/v2_catalog查看当前仓库中的存放的镜像列表。(注意打开8000端口访问)

向私有仓库上传、下载镜像

  • 第一步:利用docker tag重命名需要上传的镜像
    docker tag IMAGE 服务器IP:端口/IMAGE_NAME
  • 第二步:利用docker push上传刚刚重命名的镜像
    docker push 服务器IP:端口/IMAGE_NAME
  • 注意:
    必须重命名为服务器IP:端口/IMAGE_NAME
    如果push出现了类似https的错误那么需要往配置文件/etc/docker/daemon.json里添加:”insecure-registries”:[“服务器IP:端口”]
    然后重启docker。

搭建带认证的私有仓库

在服务器上:

  • 第一步:删除先前创建的无认证的仓库容器
    docker rm -f my-registry
  • 第二步:创建存放认证用户名和密码的文件:
    mkdir /my-registry/auth -p
  • 第三步:创建密码验证文件。注意将将USERNAME和PASSWORD替换为设置的用户名和密码
docker run --entrypoint htpasswd registry -Bbn USERNAME PASSWORD > /my-registry/auth/htpasswd
  • 第四步:重新启动仓库镜像
docker run -d -p 8000:5000 --restart=always --name docker-registry \
-v /my-registry/registry:/var/lib/registry \
-v /my-registry/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
registry

带认证的私有仓库,如何上传、下载镜像

在本地机器上:

  • 第一步:首先登录到服务器
    docker login -u username -p password 服务器IP:8000
  • 第二步:然后执行pull或者push命令,参考无认证仓库的上传/下载
  • 第三步:操作完毕后,可以退出登录
    docker logout 服务器IP:8000

这是如果想查看仓库中已有的镜像,那么需要进行http验证才可以。可以直接借助浏览器访问服务器IP:8000/v2/_catalog就可以访问了

学到这,就赶紧动手搭建一个,不要光收藏不动手哇~

相关实践学习
通过容器镜像仓库与容器服务快速部署spring-hello应用
本教程主要讲述如何将本地Java代码程序上传并在云端以容器化的构建、传输和运行。
Kubernetes极速入门
Kubernetes(K8S)是Google在2014年发布的一个开源项目,用于自动化容器化应用程序的部署、扩展和管理。Kubernetes通常结合docker容器工作,并且整合多个运行着docker容器的主机集群。 本课程从Kubernetes的简介、功能、架构,集群的概念、工具及部署等各个方面进行了详细的讲解及展示,通过对本课程的学习,可以对Kubernetes有一个较为全面的认识,并初步掌握Kubernetes相关的安装部署及使用技巧。本课程由黑马程序员提供。   相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
Linux 应用服务中间件 Shell
docker学习--docker容器镜像常用命令大全(简)
本文档详细介绍了Docker中的镜像命令与容器管理命令。镜像命令部分涵盖了镜像搜索、下载、上传等操作;容器管理命令则包括了容器的创建、启动、停止、删除及日志查看等功能。通过具体示例,帮助用户更好地理解和使用Docker相关命令。
171 0
|
4月前
|
存储 运维 数据安全/隐私保护
如何高效利用阿里云Docker镜像仓库管理您的容器镜像
如何高效利用阿里云Docker镜像仓库管理您的容器镜像
|
3月前
|
Docker 容器
使用rootfs制作docker容器镜像
使用rootfs制作docker容器镜像
|
5月前
|
应用服务中间件 nginx 数据安全/隐私保护
借助阿里个人版镜像仓库+云效实现全免费同步docker官方镜像到国内
受docker hub 6月初网络变更的影响,国内拉取docker官方镜像变得不稳定……
|
4月前
|
Docker 容器
docker: 搭建 harbor 镜像仓库
docker: 搭建 harbor 镜像仓库
|
6月前
|
存储 Linux Docker
Docker|了解容器镜像层(2)
Docker|了解容器镜像层(2)
101 0
Docker|了解容器镜像层(2)
|
6月前
|
存储 缓存 开发工具
Docker|了解容器镜像层(1)
Docker|了解容器镜像层(1)
121 0
|
7月前
|
存储 API 数据安全/隐私保护
企业级Docker镜像仓库Harbor部署与使用
企业级Docker镜像仓库Harbor部署与使用
|
7月前
|
Java Linux 数据安全/隐私保护
Docker自定义JDK镜像并拉取至阿里云镜像仓库全攻略
Docker自定义JDK镜像并拉取至阿里云镜像仓库全攻略
2997 0
|
7月前
|
关系型数据库 MySQL Linux
如何在Linux上搭建本地Docker Registry镜像仓库并实现公网访问
如何在Linux上搭建本地Docker Registry镜像仓库并实现公网访问
373 0