[docker]本地仓库的创建的使用

Posted baylorqu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[docker]本地仓库的创建的使用相关的知识,希望对你有一定的参考价值。

如果自己创建的镜像可以供其他同事使用,那就可以大大节约开发时间成本,docker的本地仓库正好可以满足这样的需求

1、在仓库服务器上创建本地仓库

[email protected]:~$ docker run -d -p 5000:5000 --name registry registry:2

2、在需要上传的服务器上先得到个镜像

[email protected]:~$ docker pull busybox

技术分享图片

3、为准备上传的镜像改个tag

[email protected]:~$ docker tag busybox 192.168.133.165:5000/busybox

技术分享图片

4、将本地的镜像推送到本地仓库服务器

[email protected]:~$ docker push 192.168.133.165:5000/busybox

可能会遇到以下的错误信息:

FATA[0000] Error response from daemon: v1 ping attempt failed with error: Get https://192.168.133.165:5000/v1/_ping: local error: record overflow. If this private registry supports only HTTP or HTTPS with an unknown CA certificate, please add `--insecure-registry 192.168.133.165:5000` to the daemon‘s arguments. In the case of HTTPS, if you have access to the registry‘s CA certificate, no need for the flag; simply place the CA certificate at /etc/docker/certs.d/192.168.133.165:5000/ca.crt 

因为Docker从1.3.X之后默认docker registry使用的是https,所以当用docker pull命令下载远程镜像时,如果远程docker registry是非https的时候就会报上面的错误。

解决方法为在docker的配置文件里添加--insecure-registry参数

[email protected]:~$ cat /etc/default/docker 
# Docker Upstart and SysVinit configuration file

# Customize location of Docker binary (especially for development testing).
#DOCKER="/usr/local/bin/docker"

# Use DOCKER_OPTS to modify the daemon startup options.
#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"

# If you need Docker to use an HTTP proxy, it can also be specified here.
#export http_proxy="http://127.0.0.1:3128/"

# This is also a handy place to tweak where Dockers temporary files go.
#export TMPDIR="/mnt/bigdrive/docker-tmp"
DOCKER_OPTS="--insecure-registry 192.168.133.165:5000"     《-------在这里

5、重启docker后再次推送

[email protected]:~$ sudo service docker restart

技术分享图片

6、到另外一台机器上去拉镜像(如果也有证书问题,说明也要需要在/etc/default/docker的配置文件里添加registry参数的)

[email protected]:~$ docker pull 192.168.133.165:5000/busybox

技术分享图片

 

7、注意:

因为本地仓库也是一个容器,那么当这个窗口被误删除时,它里面的镜像也会随之删除。所以在创建这个容器的时候最好使用-v参数将数据持久化

我创建的本地仓库存放其它镜像的地址是/var/lib/registry/docker/registry/v2/repositories/,各位在使用的时候情况可能有所不同

[email protected]:~$ sudo docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry/docker/registry/v2/repositories/ --name registry

 

以上是关于[docker]本地仓库的创建的使用的主要内容,如果未能解决你的问题,请参考以下文章

搭建docker本地仓库

docker 搭建本地私有仓库

Docker基础-搭建本地私有仓库

docker——docker搭建本地私有仓库

docker 创建和使用私有仓库

Centos7系统创建Docker本地仓库