1.从docker官方仓库下载registry

2.将registry放进容器内

3.在官方下载镜像上传本地仓库

4.私有仓库docker-registry使用的常见问题

5.配置阿里云镜像加速器

假设我外网ip119.23.113.33

1.从docker官方仓库下载registry

docker pull registry:2.2

此时,查看镜像docker images 会看见registry

REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
registry 2.2 ad379b517aa6 years ago 225MB

2.将registry放进容器内

默认情况下,仓库会被创建在容器的 /tmp/registry 下。可以通过 -v 参数来将镜像文件存放在本地的 指定路径。 下面的将上传的镜像放到 /opt/data/registry 目录

docker run -d --name=MyRegistry -p : -v /opt/data/registry:/tmp/registry registry:2.2

输入docker ps 查看已经启动的容器

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
0c8d76e6bc71 registry:2.2 "/bin/registry /etc/…" hours ago Up hours 0.0.0.0:->/tcp MyRegistry

3.在官方下载镜像上传本地仓库

下载ubuntu

docker pull ubuntu

查看镜像docker images

REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
registry 2.2 ad379b517aa6 years ago 225MB
ubuntu latest 77be327e4b63 weeks ago 124MB

修改一下该镜像的tag标识

docker tag ubuntu 119.23.113.33:/ubuntu

查看镜像docker images

REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
registry 2.2 ad379b517aa6 years ago 225MB
ubuntu latest 77be327e4b63 weeks ago 124MB
119.23.113.33:/ubuntu latest 77be327e4b63 weeks ago 124MB

修改tag后的镜像上传到私有仓库

docker push 119.23.113.33:/ubuntu

4.常见问题

1.报错Get https://119.23.110.27:5000/v2/: http: server gave HTTP response to HTTPS client

Docker自从1.3.X之后docker registry交互默认使用的是HTTPS,但是搭建私有镜像默认使用的是HTTP服务,所以与私有镜像交时出现以上错误。

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

重启docker

systemctl restart docker

如果还是不行,可以查看一下,是不是添加了阿里云的镜像加速器,删除就行了

2.报错Get http://192.168.220.125:5000/v2/: dial tcp 192.168.220.125:5000: connect: connection refused

这是5000端口没开的原因

5.配置阿里云镜像加速器

针对Docker客户端版本大于 1.10.0 的用户

您可以通过修改daemon配置文件/etc/docker/daemon.json来使用加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://59kfk4ft.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

感谢阅读

05-16 21:57