Docker 私有仓库搭建
Docker Registry 是 docker 官方提供的工具,可以用于构建私有的镜像仓库,下面将介绍如何使用 Docker Registry 来搭建属于自己的私有仓库。
安装运行 docker-registry
默认情况下,仓库会被创建在容器的
/var/lib/registry目录下,你可以通过-v参数来将镜像文件存放在本地的指定路径。docker run -d -p 127.0.0.1:5000:5000 -v /local_dir:/docker_dir registry对应的
docker-compose up -d方式配置(docker-compose.yml)version: '3' services: registry: image: registry:latest ports: - "5000:5000" volumes: - /local_dir:/docker_dir environment: REGISTRY_HTTP_HOST: https://docker.kyzy.cc REGISTRY_AUTH: htpasswd REGISTRY_AUTH_HTPASSWD_PATH: /docker_dir/auth.password REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm安装 nginx(用于反向代理),apache2-utils(用于生成 basic auth 验证文件)
apt install nginx apache2-utils证书生成
证书可以使用 CloudFlare 的也可以自己生成
配置 nginx
server { error_log /var/log/nginx/error_docker.log; access_log /var/log/nginx/access_docker.log; listen 443 ssl http2; listen [::]:443 ssl http2; server_name docker.mydomain.com; auth_basic "登录"; ### <--- 要求验证 auth_basic_user_file /etc/nginx/auth.password; ### <--- 保存验证信息 # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; location ^~ /.well-known/acme-challenge/ { alias /var/www/html/ssl_check_file/; } ssl_certificate /root/docker-nginx-test/mydomain.com.pem; ### <--- 证书 key ssl_certificate_key /root/docker-nginx-test/mydomain.com.key; ### <--- 证书 location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr; proxy_pass http://127.0.0.1:5000; ### <--- 反向代理 } error_page 404 /40x.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }应用
登录 docker 仓库
docker login docker.mydomain.com标记想要推送的镜像
# 格式 docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG] 例如: docker tag my-docker-image:v1.0 docker.mydomain.com/my-docker-image:v1.0上传标记的镜像
docker push docker.mydomain.com/my-docker-image:v1.0拉取仓库中的镜像
docker pull docker.mydomain.com/my-docker-image:v1.0用 curl 查看仓库中的镜像。
curl -u username:password https://docker.mydomain.com/v2/_catalog或者
curl -u username:password https://docker.mydomain.com/v2/my-docker-image/tags/list
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭