1.1. Docker 私有仓库和UI搭建

1.2. 准备工作

  • docker volume create registry-data # 创建数据卷 方便以后迁移
  • docker network create -d bridge registry-net # 创建网络 方便容器互通
  • openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt

1.2.1. docker-compose-registry.yml

  • 5000 是仓库的对外地址
  • 5001 是Ui面板的地址
version: '3'
services:
  registry:
    image: 'registry:2.7'
    ports:
      - "5000:5000"
    expose:
      - "5000"
    volumes:
      - registry-data:/var/lib/registry
  frontend:
    image: konradkleine/docker-registry-frontend:v2
    restart: always
    depends_on:
        - registry
    ports:
        - 5001:80
    volumes:
        - ./ca.crt:/etc/apache2/server.crt:ro
        - ./ca.key:/etc/apache2/server.key:ro
    environment:
        - ENV_DOCKER_REGISTRY_HOST=registry
        - ENV_DOCKER_REGISTRY_PORT=5000
volumes:
  registry-data:
    external: true
networks:
  default:
    external:
      name: registry-net

1.3. 启动

>> docker-compose -f docker-compose-registry.yml up -d 

Starting registrys_registry_1 ... done
Starting registrys_frontend_1 ... done

>> docker-compose -f docker-compose-registry.yml ps

        Name                      Command               State               Ports
---------------------------------------------------------------------------------------------
registrys_frontend_1   /bin/sh -c $START_SCRIPT         Up      443/tcp, 0.0.0.0:5001->80/tcp
registrys_registry_1   /entrypoint.sh /etc/docker ...   Up      0.0.0.0:5000->5000/tcp

1.4. client 使用注意事项

  • registry -> //你的私有仓库地址ip或域名
>> vim /etc/docker/daemon.json
"insecure-registries":["registry:5000"]

>> docker tag alonexy/php72:1.1 registry:5000/php72:1.1
>> docker push registry:5000/php72:1.1

The push refers to repository [registry:5000/php72]
9da1eeed53d8: Layer already exists
c29ad71cec55: Layer already exists
4214989b4ba6: Layer already exists
742f754db78b: Layer already exists
a57193b234d8: Layer already exists
748805171741: Layer already exists
66a0b22e4656: Layer already exists
c9a36fd667c5: Layer already exists
60ef5f1ecfe4: Layer already exists
5f07a07a3fc0: Layer already exists
b6a2e79d5d32: Layer already exists
ec64f555d498: Layer already exists
840f3f414cf6: Layer already exists
17fce12edef0: Layer already exists
831c5620387f: Layer already exists
1.1: digest: sha256:580b2286c583761ccabfdecd208aa0aa15f69805173fc3ad7f9e8aa6b8b60310 size: 3455

>> curl -i http://192.168.0.50:5000/v2/_catalog
HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8
Docker-Distribution-Api-Version: registry/2.0
X-Content-Type-Options: nosniff
Date: Tue, 24 Dec 2019 02:47:09 GMT
Content-Length: 27

{"repositories":["php72"]}

1.5. END

results matching ""

    No results matching ""