# Docker Registry管理Docker镜像

前面介绍了如何构建Docker镜像,一个完整的系统可能包含上百个子模块,对应就有上百个镜像,加上不同的版本,镜像将会更多。如何管理这些镜像呢?这正是Docker Registry的作用。

# 使用Docker Hub

使用Docker Hub管理镜像,Docker Hub是Docker官方维护的Docker Registry,上面存放着很多优秀的镜像。不仅如此,Docker Hub还提供认证、工作组结构、工作流工具、构建触发器等工具来简化工作。

可使用docker search命令搜索存放在Docker Hub中的镜像。

Docker Hub如何使用呢?

# 注册与登录

Docker Hub的使用非常简单,只需注册一个Docker Hub账号,就可正常使用了。登录后,可看到Docker Hub的主页。

也可以使用docker login命令登陆Docker Hub

如:

docker login
# Username:xxx
# Password:xxx
# Login Succeeded

# 新建仓库

单击Docker Hub主页上的Create Repository按钮,按照提示填入信息即可创建一个仓库。只需填入相关信息,并单击Create按钮,就可创建一个名为ai_machine的公共仓库。

# 推送仓库

使用以下命令可将前文构建的镜像推送到Docker Hub。例如:

sudo docker push image_name

经过一段时间的等待,就可推送成功。然后,就可以在Docker Hub查看已推送的镜像。

# 搭建私有registry管理镜像

在很多场景下,需使用私有仓库管理Docker镜像。相比Docker Hub,私有仓库中已有的镜像,无须从Docker Hub下载,只需从私有仓库中下载即可,可以节省带宽。私有仓库也更加安全,更便于内部镜像的统一管理。

如何搭建、使用私有仓库呢?可使用Docker Registry 2.0来搭建私有仓库,如下,先用Docker Registry 2.0搭建一个私有仓库,然后将Docker镜像推送到私有仓库。

# 搭建私有仓库

Docker Registry 2.0的搭建非常简单,只需执行以下命令即可新建并启动一个DockerRegistry 2.0

docker run -d -p 5000:5008 --restart=always --name registry2 registry:2

# 将镜像推送到私有仓库<

前面说使用docker push命令可将镜像推送到Docker Hub,将构建的镜像推送到私有仓库时,只需指定私有仓库的地址,即可将镜像推送到私有仓库。

docker push localhost:5000/ai_machine:0.0.1

执行以上命令,发现推送并没有成功,且提示以下内容:

# The push refers to a repository [localhost:5080/ai_machine] 
# An image does not exist locally with the tag:localhost:5000/ai_machine

Docker Hub是默认的 Docker Registry,所以,ai_machine:0.0.1相当于docker.io/ai_machine:0.0.1

因此,要想将镜像推送到有仓库,需要修改镜像标签,命令如下:

docker tag ai_machine:0.0.1 localhost:5080/ai_machine:0.0.1

修改标签后就可以推送成功了。

(adsbygoogle = window.adsbygoogle || []).push({});

-1.https://docs.docker.com/docker-hub/quickstart/ (opens new window)