# 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
修改标签后就可以推送成功了。
-1.https://docs.docker.com/docker-hub/quickstart/ (opens new window)