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