1、拉取镜像
docker pull registry
2、配置私有仓库地址
vim /etc/docker/daemon.json
输入如下参数,注意修改为自己的ip地址:
"insecure-registries":["http://192.168.100.129:5000"]
结果如下:
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
],
"insecure-registries":["http://192.168.100.129:5000"]
}
3、重启docker
systemctl restart docker
4、创建容器
docker run -itd --name=registry --restart=always -v /registry:/var/lib/registry -p 5000:5000 registry
5、重新加载配置
systemctl daemon-reload
6、浏览器访问
http://192.168.100.10:5000/v2/_catalog
6.1如果访问不到,尝试关闭防火墙
systemctl stop firewalld && systectl disable firewalld
6.2如果访问不到,重启一下docker
systemctl restart docker
然后重新运行一下容器.
7、验证上传镜像到私有仓库
docker pull nginx
拉取之后我们看一下镜像名称及版本:
docker images
至此我们就有了一个nginx镜像,接下来我们使用 push 指令将镜像推送到刚刚搭建的registry中:
#标记nginx该镜像需要推送到私有仓库
docker tag nginx:latest 127.0.0.1:5000/nginx:latest
#通过push指令推送到私有仓库
docker push 127.0.0.1:5000/nginx:latest
再来访问:http://192.168.100.130:5000/v2/_catalog
我们可以看到私有仓库目录已经有刚刚推送上去的 nginx 镜像了。
8、验证从私有仓库下载镜像
验证完了上传,我们再来测试一下下载镜像:
# 格式如下:
docker pull 127.0.0.1:5000/镜像名称:镜像版本号
# 以nginx为例:
docker pull 127.0.0.1:5000/nginx
那么我们就通过IP地址测试一下:
docker pull 192.168.100.130:5000/nginx:latest