docker 私有镜像仓库

2019-05-23  本文已影响0人  lzp1234

前言

构建docker镜像私有仓库

环境

操作系统:centos7
Docker version 18.09

正文

配置基础环境

yum加速源配置
yum install -y wget
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
docker加速源配置
mkdir /etc/docker
cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://jzngeu7d.mirror.aliyuncs.com"]
}
EOF
安装docker
yum install -y yum-utils
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum install docker-ce-18.09.3 -y
systemctl enable docker
防火墙配置

除非你知道怎么配置防火墙,否则此时还是关闭掉。

systemctl disable firewalld
systemctl stop firewalld
systemctl disable iptables
systemctl stop iptables

启动镜像仓库

  1. 创建镜像存放位置:
mkdir /opt/registry
  1. 启动仓库
docker run -d -p 5000:5000 -v /opt/registry:/var/lib/registry/docker/registry --restart always --name registry registry:2

管理镜像仓库

将镜像推送到私有仓库
  1. 更新镜像的tag
    从官网拉取一个测试镜像:
docker pull busybox:latest
docker tag busybox:latest 127.0.0.1:5000/busybox:latest

这里的 "busybox:latest" 是指 "镜像名:tag"。"127.0.0.1:5000/" 是仓库的地址。

  1. 推送镜像到私有仓库
docker push 127.0.0.1:5000/busybox:latest
查看仓库中的镜像
curl <IP>:5000/v2/_catalog

注意替换IP为实际仓库地址

删除私有仓库中的镜像

TODO

删除私有仓库中的镜像某个tag

需要修改配置文件,由于使用的镜像自带的配置文件,因此进入容器(镜像仓库)修改配置文件,配置文件路径:/etc/docker/registry/config.yml
增加如下红框内容:


image.png

修改完毕后,重启容器。

删除镜像的某个tag,包含两个重要信息:镜像名称、tag
但是在删除操作时,不能直接使用tag,因此其中涉及到一些转换步骤。

  1. 获取镜像tag对应的digest(类似于id)
curl -I --header "Accept: application/vnd.docker.distribution.manifest.v2+json"  <IP>/v2/<image_name>/manifests/<tag>

注意替换IPimage_nametag。这里的IP就是仓库的地址。
执行成功后,会返回一串信息,其中 Docker-Content-Digest 对应的值就是我们需要的 digest

  1. 开始删除
curl -I -X DELETE <IP>:5000/v2/<image_name>/manifests/<digest>

注意替换IPimage_namedigest

可以直接进入镜像存放路径,可以查看到该tag已经不存在。

使用镜像仓库

在搭建好私有仓库以后,接下来就是怎么使用。

在另外一台安装了docker的机器上:

  1. 首先添加私有仓库信任
    默认情况下,无法从来源不明的仓库下载镜像,需要增加一些配置。
    vim /etc/docker/daemon.json,添加如下内容,注意替换ip为自己的仓库地址。
"insecure-registries" : ["192.168.21.210:5000"]
image.png

添加完毕后,重启docker

  1. 从私有仓库拉取镜像
docker pull 192.168.21.210:5000/busybox:latest

注意替换ip为自己的仓库地址。
此时查看镜像可以看到镜像已经下载下来。

上一篇下一篇

猜你喜欢

热点阅读