Docker配置Registry私服

配置ip

如果不想使用127.0.0.1:5000作为仓库地址,比如想让本网段的其他主机也能把镜像推送到私有仓库。就得把例如 192.168.199.100:5000 这样的内网地址作为私有仓库地址,这时会发现无法成功推送镜像。
这是因为 Docker 默认不允许非HTTPS方式推送镜像。可以通过Docker的配置选项来取消这个限制。
对于使用systemd的系统,在/etc/docker/daemon.json中写入如下内容(如果文件不存在请新建该文件)
对于Docker for Windows 、 Docker for Mac在设置中编辑 daemon.json增加和下边一样的字符串即可。

{
  "registry-mirrors" : [
    "https://dockerhub.azk8s.cn"
  ],
  "insecure-registries": [
    "192.168.0.107:5000"
  ],
  "debug" : true,
  "experimental" : false
}

之后重启服务

$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

docker-compose安装Registry及UI界面

docker-compose.yml配置文件:

  registry:
    image: registry
    restart: always
    container_name: registry
    ports:
      - 5000:5000
    volumes:
      - /Users/xiaoming/registry/registry-data:/var/lib/registry

  fronted:
    image: konradkleine/docker-registry-frontend:v2
    ports:
      - 8080:80
    volumes:
      - /Users/xiaoming/registry/frontend.crt:/etc/apache2/server.crt:ro
      - /Users/xiaoming/registry/frontend.key:/etc/apache2/server.key:ro
    environment:
      - ENV_DOCKER_REGISTRY_HOST=192.168.0.107
      - ENV_DOCKER_REGISTRY_PORT=5000

之后运行,访问相应的ip即可

上传自定义镜像

首先标记一个镜像,格式如下:

docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]

之后使用docker push就可以将指定tag的镜像推送到私服上。