使用Docker Registry搭建Docker私有仓库-极简
来源:互联网 发布:ipad看图片软件 编辑:程序博客网 时间:2024/05/16 15:24
https://docs.docker.com/registry/#tldr
官方文档:
Docker Registry
This image contains an implementation of the Docker Registry HTTP API V2 for use with Docker 1.6+. See
github.com/docker/distribution
for more details about what it is.
Run a local registry: Quick Version
$ docker run -d -p 5000:5000 --restart always --name registry registry:2
访问本地5000端口,看到返回成功(200OK)
$ curl -i 127.0.0.1:5000/v2/
Now, use it from within Docker:
$ docker pull ubuntu$ docker tag ubuntu localhost:5000/ubuntu$ docker push localhost:5000/ubuntu
&&
Reference:http://www.10tiao.com/html/357/201611/2247484690/1.html
Docker Registry由三个部分组成:index,registry,registry client。
可以把Index认为是负责登录、负责认证、负责存储镜像信息和负责对外显示的外部实现,而registry则是负责存储镜像的内部实现,而Registry Client则是docker客户端。
$ docker run -d -v /opt/docker-registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry
Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/opt/docker-registry目录挂载到该目录,即可实现将镜像保存到主机的/opt/docker-registry/目录了。
如果本地没有下载过docker-registry,则首次会pull registry 运行时会映射路径和端口,以后就可以从/opt/docker-registry下找到私有仓库,这里查看下我本机的镜像
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
131155da6e75 registry “/entrypoint.sh /etc/” 5 minutes ago Up 5 minutes 0.0.0.0:5000->5000/tcp registry
访问私有仓库
$ **curl 127.0.0.1:5000/v2/_catalog**
{“repositories”:[]}
因为我们还没有像私有容器提交镜像,所以这里返回空,下面我们提交一个镜像试试,上面可以看到我本地有一个registry的镜像
PUSH镜像
设置标签到本地的私有镜像
命令格式为
docker tag IMAGE[:TAG] [REGISTRYHOST/][USERNAME/]NAME[:TAG]
$ docker tag debian 127.0.0.1:5000/debian
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
127.0.0.1:5000/debian latest 73e72bf822ca 13 days ago 123 MB
debian latest 73e72bf822ca 13 days ago 123 MB
registry latest c9bd19d022f6 4 weeks ago 33.3 MB
nginx latest a5311a310510 5 weeks ago 181.5 MB
镜像的 ID 唯一标识了镜像,注意到 debian 和 127.0.0.1:5000/debian具有相同的镜像 ID,说明它们实际上是同一镜像。
然后我们将这个镜像push到私有镜像库
$ docker push 127.0.0.1:5000/debian
The push refers to a repository [127.0.0.1:5000/debian]
fe4c16cbf7a4: Pushed
latest: digest: sha256:c1ce85a0f7126a3b5cbf7c57676b01b37c755b9ff9e2f39ca88181c02b985724 size: 529
然后在看下私有仓库中有没有镜像
$ curl 127.0.0.1:5000/v2/_catalog
{“repositories”:[“debian”]}
可以看到一个叫debian的镜像存在了,其他服务器就可以来下载这个镜像使用了。
从其它服务器上面拉取镜像
$ docker pull 192.168.3.79:5000/debian$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
192.168.3.79:5000/debian latest 73e72bf822ca 13 days ago 123 MB
可能存在的问题
出现无法从私有仓库pull镜像或无法push到私有仓库的问题,类似如下报错。
$ docker pull 192.168.3.79:5000/debian
Using default tag: latest
Error response from daemon: Get https://192.168.3.79:5000/v1/_ping: http: server gave HTTP response to HTTPS client
这是因为我们启动的registry服务不是安全可信赖的。这是我们需要修改docker的配置文件/etc/default/docker,添加下面的内容,
$ vim /etc/default/docker
DOCKER_OPTS="--insecure-registry 182.168.3.79:5000"
然后重启docker后台进程,
$ sudo service docker restart
然后再PULL即可。
其它技巧
如果本地有很多镜像想批量上传怎么办,可以用这个脚本
$ wget https://github.com/yeasy/docker_practice/raw/master/_local/push_images.sh
$ ./push_images.sh ubuntu:latest centos:centos7
将本地更新后的容器,提交到私有仓库
记录容器ID
$ docker ps
将容器更新提交到镜像:
$ docker commit -m “Add vim” 69e873e0c48e 127.0.0.1:5000/ubuntu
Push到私有仓库
$ docker push 127.0.0.1:5000/ubuntu
- 使用Docker Registry搭建Docker私有仓库-极简
- Docker私有仓库Registry使用
- docker私有仓库搭建 使用Portus管理docker registry 私有仓库
- 搭建 Docker 私有仓库 Registry-v2
- Docker私有仓库Registry的搭建验证
- Docker私有仓库Registry的搭建验证
- docker registry-v2 搭建私有仓库
- docker私有仓库registry的本地搭建
- docker 搭建私有仓库registry (多用户)
- docker registry V2私有仓库搭建
- docker 搭建私有registry
- 搭建私有Docker Registry
- docker 私有仓库 registry 部署
- Docker-构建私有仓库Registry
- docker基础:私有仓库repository搭建(1):registry
- 第6章 Docker私有仓库Registry的搭建验证
- docker registry带ssl认证的私有仓库搭建
- Docker搭建私有仓库
- HDU6035-Colorful Tree
- Java初学者都必须理解的六大问题
- 总记不住git上传代码前的
- spring事务管理配置以及事务相关知识点
- Java屏蔽Windows按键代码
- 使用Docker Registry搭建Docker私有仓库-极简
- javaFX——非UI线程界面更新问题
- Linux信号列表
- oracle 视图(view)的使用
- 梯度下降法
- 将博客搬至CSDN
- 线性代数 逆矩阵
- android秒启动unity,和给unity添加过渡图片
- Excel 技巧百例:两个表的左连接