访问Docker仓库

本文介绍了如何访问和使用Docker Hub公共仓库,包括登录、搜索和下载镜像。同时,详细阐述了如何搭建私有仓库,使用registry镜像创建并配置本地仓库,以及将镜像推送到私有仓库的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

仓库是集中存放镜像的地方,又分私有仓库和共有仓库。

有时候容易把仓库与注册服务器混淆。实际上注册服务器是存放仓库的具体服务器,一个注册服务器可以有多个仓库,而没个仓库下面可以有多个镜像。仓库可以被认为是一个具体的项目或目录。例如private-docker.com/ubuntu来说,private-docker.com是注册服务器地址,ubuntu是仓库名。

1. Docker Hub 共有镜像仓库

Docker Hub是Docker官方提供的最大的公共镜像仓库,地址是https://hub.docker.com。

1.1 登录

可以通过命令执行docker login命令来输入用户名、密码登录,登录成功后本地用户目录下会自动创建.docker/config.json文件,保存用户的认证信息。

登录成功的用户可以上传个人制作的镜像到Docker Hub。

[root@localhost ~]# docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: 
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
 

1.2. 基本操作

用户无需登录即可通过docker search 命令查找官方仓库中的镜像,并利用docker [image] pull 下载到本地。

[root@localhost ~]# docker search centos
NAME                                         DESCRIPTION                                     STARS     OFFICIAL   AUTOMATED
centos                                       DEPRECATED; The official build of CentOS.       7549      [OK]       
kasmweb/centos-7-desktop                     CentOS 7 desktop for Kasm Workspaces            35                   
镜像资源被分为两类:

  • 一种是类似于centos这样的基本镜像,也被称为根镜像。这些镜像是由Docker公司创建、验证、支持、提供,这样的镜像往往使用单个单词作为名字。
  • 另一类型的镜像,比如kasmweb/centos-7-desktop镜像,是由Docker用户kasmweb创建并维护的,带有用户名称为前缀,表明是某用户下的某仓库。可以通过用户名前缀“user_name/镜像名”来指定使用某个用户提供的镜像。

下载官方centos镜像到本地:

[root@localhost ~]# docker pull centos
Using default tag: latest
latest: Pulling from library/centos
a1d0c7532777: Pull complete 
Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
Status: Downloaded newer image for centos:latest
docker.io/library/centos:latest
 

1.3. 自动创建

自动创建是Docker Hub提供的自动化服务,这一功能可以自动跟随项目代码的变更而重新构建镜像。

例如:构建了某应用镜像,如果应用发布了新版本,用户需要手动更新镜像。而自动创建规则允许通过Docker Hub指定跟踪一个目标网站上的项目,一旦项目发生新的提交,则自动执行创建。

要配置自动创建,步骤如下:

  • 创建并登录Docker Hub,以及目标网站如github;
  • 在目标网站中允许Docker Hub访问服务;
  • 在Docker Hub中配置一个“自动创建”类型的项目;
  • 选取一个目标网站中的项目(需要包含Dockerfile)和分支;
  • 指定Dockerfile的位置,并提交创建;

之后在Docker Hub的“自动创建”页面中跟踪每次创建的状态。

2. 搭建私有仓库

2.1. 使用registry镜像创建私有仓库

安装Docker 后可以使用官方提供的registry镜像来简单搭建一套本地私有仓库环境:

[root@localhost ~]# docker run -d -p 5000:5000 registry:2
Unable to find image 'registry:2' locally
2: Pulling from library/registry
91d30c5bc195: Pull complete 
65d52c8ad3c4: Pull complete 
54f80cd081c9: Pull complete 
ca8951d7f653: Pull complete 
5ee46e9ce9b6: Pull complete 
Digest: sha256:8c51be2f669c82da8015017ff1eae5e5155fcf707ba914c5c7b798fbeb03b50c
Status: Downloaded newer image for registry:2
249cfb72777433f8d36d5455ce219720ff6635179171af312fe50ad9650c76c1
 

这时将自动下载并启动一个registry容器,创建本地的私有仓库。

在daemon.json文件中添加私有镜像仓库地址。

[root@localhost]# vim /etc/dockerdaemon.json 
{
  "insecure-registries": ["192.168.92.132:5000"],
  "registry-mirrors": ["https://4abdkxlk.mirror.aliyuncs.com"]
}
 

默认情况下,仓库会被创建在容器的/var/lib/registry目录下。可以通过-v参数来将镜像文件存放在本地的指定路径。例如:

docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了

--restart=always: 这是重启的策略,在容器退出时总是重启容器

--name registry: 创建容器命名为registry

为镜像打上标签

[root@localhost docker]# docker tag centos:latest 192.168.92.132:5000/centos:0.1
[root@localhost docker]# docker images
REPOSITORY                   TAG       IMAGE ID       CREATED         SIZE
192.168.92.132:5000/centos   0.1       5d0da3dc9764   19 months ago   231MB
 

使用docker push命令上传到私有仓库

[root@localhost docker]# docker push 192.168.92.132:5000/centos:0.1
The push refers to repository [192.168.92.132:5000/centos]
74ddd0ec08fa: Pushed 
0.1: digest: sha256:a1801b843b1bfaf77c501e7a6d3f709401a1e0c83863037fa3aab063a7fdb9dc size: 529
 

用curl查看仓库中的镜像

[root@localhost docker]# curl http://192.168.92.132:5000/v2/_catalog
{"repositories":["centos"]}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值