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
感谢阅读