访问docker仓库

仓库(Repositiry)是集中存放镜像的地方,分为公共仓库和私有仓库。一个容易与之混淆的概念是注册服务器(Registry)。实际上注册服务器是存放仓库的具体服务器,一个注册服务器上可以有多个仓库,而每个仓库下面可以有多个镜像。因此可以将仓库看做一个具体的项目或目录。例如对于仓库地址:private-docker.com/ubuntu来说,private-docker.com是注册服务器地址,ubuntu是仓库名。

1、Docker Hub公共镜像市场

目前Docker官方维护了一个公共镜像仓库http://hub.docker.com,大部分镜像都可以通过该网站进行下载。

(1)、登录

可以通过执行命令docker login命令来输入用户名、密码和邮箱来完成注册和登录。注册成功后,本地用户目录的.dockercfg中将保存用户的认证信息。登录成功的用户可以上传个人制作的镜像。

(2)、基本操作

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

2、时速云镜像市场(略)

3、搭建本地私有仓库

(1)、安装docker后,可以通过官网提供的registry镜像来简单搭建一套本地私有仓库环境:

docker run -d -p 5000:5000 registry

这将自动下载并启动一个register容器,创建本地的私有仓库。默认情况下,会将仓库创建在容器的/tmp/registry目录下。可以通过-v参数来将镜像文件放在本地的指定路径。例如下面的例子将上传的镜像放到/opt/data/register目录:

docker run -d -p 5000:5000 -v /opt/data/registry:/tmp/registry registry

此时,在本地将创建一个私有仓库服务,监听端口为5000。

(2)、管理私有仓库

搭建好仓库之后,查看其地址为:172.16.0.79(docker宿主机的ip):5000。然后在虚拟机系统里测试上传和下载的镜像。

查看已有镜像:

使用docker tag 命令将镜像ubuntu:1.0标记为172.16.0.79:5000/test

使用docker push上传镜像

报错:

The push refers to a repository [172.16.0.79:5000/test]
Get https://172.16.0.79:5000/v1/_ping: http: server gave HTTP response to HTTPS client

解决:在/etc/docker/路径下添加文件daemon.json

echo '{ "insecure-registries":["172.16.0.79:5000"] }' > /etc/docker/daemon.json

然后:systemctl restart docker

再次上传:

报错:(可能是容器registry没有启动)

The push refers to a repository [172.16.0.79:5000/test]
Put http://172.16.0.79:5000/v1/repositories/test/: dial tcp 172.16.0.79:5000: getsockopt: connection refused

解决:docker start be0d898caf02

再次上传:

 查看仓库中的镜像:

curl -XGET http://172.16.0.79:5000/v2/_catalog
或者
curl -XGET http://172.16.0.79:5000/v2/test/tags/list

从私有仓库下载镜像:

docker pull 172.16.0.79:5000/test

 

posted @ 2019-02-18 10:31  炫舞风中  阅读(170)  评论(0编辑  收藏  举报