https://www.linuxidc.com/Linux/2018-03/151308.htm

部署仓库

下载镜像仓库registry

  1. docker pull registry
  1. docker images

运行registry容器

  1. docker run -itd -v /data/registry:/var/lib/registry -p 5000:5000 --restart=always --name registry registry:latest

参数说明
-itd:在容器中打开一个伪终端进行交互操作,并在后台运行;
-v:把宿主机的/data/registry目录绑定 到 容器/var/lib/registry目录(这个目录是registry容器中存放镜像文件的目录),来实现数据的持久化;
-p:映射端口;访问宿主机的5000端口就访问到registry容器的服务了;
—restart=always:这是重启的策略,假如这个容器异常退出会自动重启容器;
—name registry:创建容器命名为registry,你可以随便命名;
registry:latest:这个是刚才pull下来的镜像;

仓库http接口

  1. //查看仓库已有镜像
  2. curl http://127.0.0.1:5000/v2/_catalog
  1. //列出busybox镜像有哪些tag
  2. curl http://127.0.0.1:5000/v2/busybox/tags/list

仓库的使用

Push镜像

1、镜像打标签

  1. docker tag busybox:latest 172.18.18.90:5000/busybox:v1

busybox:lastest 这是源镜像,也是本地的镜像文件;
172.18.18.90:5000/busybox:v1:这是目标镜像,也是registry私有镜像服务器的IP地址和端口;

2、上传镜像

  1. docker push 172.18.18.90:5000/busybox:v1

报错:http: server gave HTTP response to HTTPS client
需要https的方法才能上传,我们可以修改下daemon.json来解决:

  1. vim /etc/docker/daemon.json
  2. {
  3. "registry-mirrors": [ "https://registry.docker-cn.com"],
  4. "insecure-registries": [ "172.18.18.90:5000"]
  5. }
  6. systemctl restart docker

Pull镜像

  1. docker pull 172.18.18.90:5000/busybox:v1