赞
踩
mkdir -p /opt/docker/registry/certs
mkdir -p /opt/docker/registry/auth
openssl req -newkey rsa:4096 -nodes -sha256 \
-keyout /opt/docker/registry/certs/devops-registry.key \
-x509 -days 3650 \
-out /opt/docker/registry/certs/devops-registry.crt
admin admin123
就是账号和密码了
docker run --entrypoint htpasswd registry:2 -Bbn admin admin123 > /opt/docker/registry/auth/htpasswd
docker run
启动私有仓库:docker run -dit -p 5000:5000 --restart=always --name devops-registry \
-v /opt/docker/registry/auth:/auth \
-e REGISTRY_AUTH=htpasswd \
-e REGISTRY_AUTH_HTPASSWD_REALM="Registry Realm" \
-e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \
-e REGISTRY_STORAGE_DELETE_ENABLED="true" \
-v /opt/docker/registry/certs:/certs \
-v /opt/docker/registry/data:/var/lib/registry \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/devops-registry.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/devops-registry.key \
registry:2
version: '2' services: devops-registry: restart: always image: registry:2 ports: - 5000:5000 environment: REGISTRY_HTTP_TLS_CERTIFICATE: /certs/devops-registry.crt REGISTRY_HTTP_TLS_KEY: /certs/devops-registry.key REGISTRY_AUTH: htpasswd REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm REGISTRY_STORAGE_DELETE_ENABLED: "true" volumes: - /registry/data:/var/lib/registry - /opt/docker/registry/certs:/certs - /opt/docker/registry/auth:/auth networks: extnetwork: ipv4_address: 172.18.0.2 docker-ui: restart: always image: konradkleine/docker-registry-frontend:v2 ports: - 5001:80 depends_on: - devops-registry environment: ENV_DOCKER_REGISTRY_HOST: devops-registry ENV_DOCKER_REGISTRY_PORT: 5000 ENV_DOCKER_REGISTRY_USE_SSL: '1' networks: extnetwork: ipv4_address: 172.18.0.3 networks: extnetwork: ipam: config: - subnet: 172.18.0.0/16 gateway: 172.18.0.1
docker-compose -f docker-registry.yml up -d
docker客户机添加证书,在docker客户机上创建证书目录
mkdir -p /etc/docker/certs.d/devops-registry:5000
仓库服务器上生成的/opt/docker/registry/certs/devops-registry.crt复制到docker客户机上
cp /opt/docker/registry/certs/devops-registry.crt /etc/docker/certs.d/devops-registry:5000
编辑客户机的hosts文件,把仓库名和对应的ip地址加上
在docker客户机上登录私有仓库
docker login devops-registry:5000
测试推送和拉取镜像
docker tag busybox:latest devops-registry:5000/busybox:latest
docker push devops-registry:5000/busybox:latest
docker rmi devops-registry:5000/busybox:latest busybox:latest
docker pull devops-registry:5000/busybox:latest
ip:5001
便可以打开Docker registry frontend页面,使用上面的用户名密码登录整合了docker-registry-frontend
和docker-registry-web
两种web页面,供参考,选择合适的即可:
version: '2' services: registry: restart: always image: registry:2 ports: - 5000:5000 environment: REGISTRY_HTTP_TLS_CERTIFICATE: /certs/domain.crt REGISTRY_HTTP_TLS_KEY: /certs/domain.key REGISTRY_AUTH: htpasswd REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm REGISTRY_STORAGE_DELETE_ENABLED: "true" volumes: - /registry/data:/var/lib/registry - /opt/docker/registry/local/certs:/certs - /opt/docker/registry/local/auth:/auth networks: extnetwork: ipv4_address: 172.18.0.2 docker-ui: restart: always image: konradkleine/docker-registry-frontend:v2 ports: - 5001:80 depends_on: - registry environment: ENV_DOCKER_REGISTRY_HOST: k8s-registry.campusphere ENV_DOCKER_REGISTRY_PORT: 5000 ENV_DOCKER_REGISTRY_USE_SSL: '1' extra_hosts: - k8s-registry.campusphere:172.18.0.2 networks: extnetwork: ipv4_address: 172.18.0.3 docker-web: restart: always image: hyper/docker-registry-web:latest ports: - 5002:8080 depends_on: - registry environment: REGISTRY_BASIC_AUTH: "YWRtaW46YWRtaW4xMjM=" REGISTRY_TRUST_ANY_SSL: 1 REGISTRY_URL: https://registry:5000/v2/ REGISTRY_NAME: k8s-registry.campusphere:5000 networks: extnetwork: ipv4_address: 172.18.0.4 networks: extnetwork: ipam: config: - subnet: 172.18.0.0/16 gateway: 172.18.0.1
注:上面的services.docker-web.environment.REGISTRY_BASIC_AUTH
字段是私有仓库账号:密码
经过base64编码后的字符串,如账号和密码分别是admin
和admin123
,在bash环境下通过命令echo -n "admin:admin123" | base64
即可获得。
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。