Docker搭建本地仓库并推送镜像到本地仓库

Dockers不仅提供了一个中央仓库,同时也允许我们使用registry搭建本地私有仓库;

一、本地下载registry

sudo docker pull registry:2

Docker搭建本地仓库并推送镜像到本地仓库_第1张图片

二、启动容器运行registry镜像

docker run -d -p 5000:5000 -v /opt/registry:/var/lib/registry registry:2

说明:

-d ==> 作为daemon进程启动,也就是后台启动

-v /opt/registry:/tmp/registry ==> 默认情况下,会将仓库存放于容器内的/tmp/registry目录下,指定本地目录/opt/registry挂载到容器,可以防止容器意外停止后镜像的丢失。

-p 5000:5000 ==> 前一个5000是host的端口,后一个是容器的端口。这里是将容器的5000端口映射到host的5000端口

  • 配置https权限支持
 vi /etc/docker/daemon.json

 

Docker搭建本地仓库并推送镜像到本地仓库_第2张图片

  • 防火墙添加5000端口
firewall-cmd --zone=public --add-port=5000/tcp --permanent
firewall-cmd --reload
  • 重启docker服务
systemctl restart docker
  • 上传镜像到本地私有库:registry

  先下载busybox镜像作为示例:

docker pull busybox
  • 修改镜像的tag
docker tag busybox 192.168.10.59:5000/busybox
  • 推送镜像到本地仓
docker push 192.168.10.59:5000/busybox

 

  报错如下:

Docker搭建本地仓库并推送镜像到本地仓库_第3张图片

解决办法:禁用selinux;

禁用selinux参考我的博文:Centos禁用SELinux

上传成功:

三、查看上传的镜像

curl http://192.168.10.59:5000/v2/_catalog

  • 从本地仓库拉取镜像
 docker pull 192.168.10.59:5000/busybox

Docker搭建本地仓库并推送镜像到本地仓库_第4张图片

你可能感兴趣的:(docker,Linux)