-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathregistry.html
99 lines (85 loc) · 27.7 KB
/
registry.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Docker Registry | Docker LNMP Docs</title>
<meta name="generator" content="VuePress 1.7.1">
<meta name="description" content="">
<link rel="preload" href="/assets/css/0.styles.4bdbd8d9.css" as="style"><link rel="preload" href="/assets/js/app.209f2259.js" as="script"><link rel="preload" href="/assets/js/2.8af6cdaa.js" as="script"><link rel="preload" href="/assets/js/81.e68b030b.js" as="script"><link rel="prefetch" href="/assets/js/10.be6825a7.js"><link rel="prefetch" href="/assets/js/100.03d20cb7.js"><link rel="prefetch" href="/assets/js/101.e786fe82.js"><link rel="prefetch" href="/assets/js/102.6c9d2de9.js"><link rel="prefetch" href="/assets/js/103.93d73ab5.js"><link rel="prefetch" href="/assets/js/104.9e50d9a7.js"><link rel="prefetch" href="/assets/js/105.f3f9432d.js"><link rel="prefetch" href="/assets/js/11.5ace5492.js"><link rel="prefetch" href="/assets/js/12.755ab736.js"><link rel="prefetch" href="/assets/js/13.3f1cae5e.js"><link rel="prefetch" href="/assets/js/14.77b9cd63.js"><link rel="prefetch" href="/assets/js/15.e1d177bf.js"><link rel="prefetch" href="/assets/js/16.dfd1de0f.js"><link rel="prefetch" href="/assets/js/17.1b359d8a.js"><link rel="prefetch" href="/assets/js/18.9269c7d7.js"><link rel="prefetch" href="/assets/js/19.781915cc.js"><link rel="prefetch" href="/assets/js/20.21128e97.js"><link rel="prefetch" href="/assets/js/21.dc763957.js"><link rel="prefetch" href="/assets/js/22.0626debe.js"><link rel="prefetch" href="/assets/js/23.a089e602.js"><link rel="prefetch" href="/assets/js/24.eb210250.js"><link rel="prefetch" href="/assets/js/25.9ccc7a03.js"><link rel="prefetch" href="/assets/js/26.88883549.js"><link rel="prefetch" href="/assets/js/27.e060a936.js"><link rel="prefetch" href="/assets/js/28.a219e9bf.js"><link rel="prefetch" href="/assets/js/29.4f674c07.js"><link rel="prefetch" href="/assets/js/3.b55cf771.js"><link rel="prefetch" href="/assets/js/30.2bb6ea0b.js"><link rel="prefetch" href="/assets/js/31.54b20cf7.js"><link rel="prefetch" href="/assets/js/32.4c3406bc.js"><link rel="prefetch" href="/assets/js/33.d54cec12.js"><link rel="prefetch" href="/assets/js/34.3f5de6f2.js"><link rel="prefetch" href="/assets/js/35.beff2e39.js"><link rel="prefetch" href="/assets/js/36.f9a34636.js"><link rel="prefetch" href="/assets/js/37.3dc04856.js"><link rel="prefetch" href="/assets/js/38.6d855a6e.js"><link rel="prefetch" href="/assets/js/39.fc73f21d.js"><link rel="prefetch" href="/assets/js/4.6d0e0c17.js"><link rel="prefetch" href="/assets/js/40.af31e3da.js"><link rel="prefetch" href="/assets/js/41.671019c4.js"><link rel="prefetch" href="/assets/js/42.2294d29b.js"><link rel="prefetch" href="/assets/js/43.db6a01ac.js"><link rel="prefetch" href="/assets/js/44.dd24a4b9.js"><link rel="prefetch" href="/assets/js/45.49453970.js"><link rel="prefetch" href="/assets/js/46.fd24200c.js"><link rel="prefetch" href="/assets/js/47.1949af45.js"><link rel="prefetch" href="/assets/js/48.79ae6536.js"><link rel="prefetch" href="/assets/js/49.fcde6b7f.js"><link rel="prefetch" href="/assets/js/5.0b207204.js"><link rel="prefetch" href="/assets/js/50.3b4d4418.js"><link rel="prefetch" href="/assets/js/51.edfa61cd.js"><link rel="prefetch" href="/assets/js/52.1b769c3f.js"><link rel="prefetch" href="/assets/js/53.dd0bc9d8.js"><link rel="prefetch" href="/assets/js/54.39176a80.js"><link rel="prefetch" href="/assets/js/55.573b9c31.js"><link rel="prefetch" href="/assets/js/56.b6a02619.js"><link rel="prefetch" href="/assets/js/57.f8ed8637.js"><link rel="prefetch" href="/assets/js/58.3c7e3293.js"><link rel="prefetch" href="/assets/js/59.a1bc011e.js"><link rel="prefetch" href="/assets/js/6.aa1ab838.js"><link rel="prefetch" href="/assets/js/60.3d64fb37.js"><link rel="prefetch" href="/assets/js/61.1d72bf34.js"><link rel="prefetch" href="/assets/js/62.ff909897.js"><link rel="prefetch" href="/assets/js/63.65e0c100.js"><link rel="prefetch" href="/assets/js/64.5b81f0b9.js"><link rel="prefetch" href="/assets/js/65.7b5fd5e7.js"><link rel="prefetch" href="/assets/js/66.10a94919.js"><link rel="prefetch" href="/assets/js/67.b4203de5.js"><link rel="prefetch" href="/assets/js/68.3334bcd9.js"><link rel="prefetch" href="/assets/js/69.076289e0.js"><link rel="prefetch" href="/assets/js/7.7f24f1db.js"><link rel="prefetch" href="/assets/js/70.d3dd1b6a.js"><link rel="prefetch" href="/assets/js/71.a63a7128.js"><link rel="prefetch" href="/assets/js/72.1ce4ef4e.js"><link rel="prefetch" href="/assets/js/73.1b194ce3.js"><link rel="prefetch" href="/assets/js/74.2cafcc32.js"><link rel="prefetch" href="/assets/js/75.811dfed4.js"><link rel="prefetch" href="/assets/js/76.9ecc5669.js"><link rel="prefetch" href="/assets/js/77.2d332363.js"><link rel="prefetch" href="/assets/js/78.1abbc712.js"><link rel="prefetch" href="/assets/js/79.7f694bba.js"><link rel="prefetch" href="/assets/js/8.dd0082e7.js"><link rel="prefetch" href="/assets/js/80.0c834a8c.js"><link rel="prefetch" href="/assets/js/82.ee15fd72.js"><link rel="prefetch" href="/assets/js/83.6630a350.js"><link rel="prefetch" href="/assets/js/84.c80210c2.js"><link rel="prefetch" href="/assets/js/85.84af9d91.js"><link rel="prefetch" href="/assets/js/86.c8eed3fa.js"><link rel="prefetch" href="/assets/js/87.158128c8.js"><link rel="prefetch" href="/assets/js/88.2d5efaec.js"><link rel="prefetch" href="/assets/js/89.e355abb7.js"><link rel="prefetch" href="/assets/js/9.d899d975.js"><link rel="prefetch" href="/assets/js/90.15e01064.js"><link rel="prefetch" href="/assets/js/91.a2f1ddf4.js"><link rel="prefetch" href="/assets/js/92.a40c425c.js"><link rel="prefetch" href="/assets/js/93.34101b59.js"><link rel="prefetch" href="/assets/js/94.2f5ec23e.js"><link rel="prefetch" href="/assets/js/95.7a3dabc9.js"><link rel="prefetch" href="/assets/js/96.2ecdb225.js"><link rel="prefetch" href="/assets/js/97.864e2d0f.js"><link rel="prefetch" href="/assets/js/98.3dad48c6.js"><link rel="prefetch" href="/assets/js/99.97e12689.js">
<link rel="stylesheet" href="/assets/css/0.styles.4bdbd8d9.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">Docker LNMP Docs</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link">
使用指引
</a></div><div class="nav-item"><a href="/ee/" class="nav-link">
商业版
</a></div><div class="nav-item"><a href="https://github.com/khs1994-docker/lnmp" target="_blank" rel="noopener noreferrer" class="nav-link external">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://zan.khs1994.com" target="_blank" rel="noopener noreferrer" class="nav-link external">
捐赠
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://cloud.tencent.com/act/cps/redirect?redirect=1077&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console" target="_blank" rel="noopener noreferrer" class="nav-link external">
腾讯云服务器限时秒杀
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link">
使用指引
</a></div><div class="nav-item"><a href="/ee/" class="nav-link">
商业版
</a></div><div class="nav-item"><a href="https://github.com/khs1994-docker/lnmp" target="_blank" rel="noopener noreferrer" class="nav-link external">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://zan.khs1994.com" target="_blank" rel="noopener noreferrer" class="nav-link external">
捐赠
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://cloud.tencent.com/act/cps/redirect?redirect=1077&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console" target="_blank" rel="noopener noreferrer" class="nav-link external">
腾讯云服务器限时秒杀
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>Introduction</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/" aria-current="page" class="sidebar-link">khs1994-docker/lnmp 支持文档</a></li><li><a href="/why.html" class="sidebar-link">项目初衷</a></li><li><a href="/docker.html" class="sidebar-link">安装 Docker</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>安装</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/install/linux.html" class="sidebar-link">Linux/macOS 上安装</a></li><li><a href="/install/windows.html" class="sidebar-link">Windows 上安装</a></li><li><a href="/mysql.html" class="sidebar-link">MySQL</a></li><li><a href="/update.html" class="sidebar-link">更新</a></li><li><a href="/cli.html" class="sidebar-link">命令行工具</a></li><li><a href="/init.html" class="sidebar-link">初始化过程</a></li><li><a href="/path.html" class="sidebar-link">本地路径和 Docker 内路径对应关系</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>开发环境</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/development.html" class="sidebar-link">开发环境</a></li><li><a href="/phpmyadmin.html" class="sidebar-link">phpMyAdmin</a></li><li><a href="/custom.html" class="sidebar-link">个性化方案</a></li><li><a href="/lrew.html" class="sidebar-link">lrew</a></li><li><a href="/backup.html" class="sidebar-link">备份恢复</a></li><li><a href="/cleanup.html" class="sidebar-link">清理</a></li><li><a href="/config.html" class="sidebar-link">软件配置</a></li><li><a href="/port.html" class="sidebar-link">服务端口开放</a></li><li><a href="/command.html" class="sidebar-link">PHPer 常用命令容器化</a></li><li><a href="/lpm.html" class="sidebar-link">包管理工具 lpm</a></li><li><a href="/compose.html" class="sidebar-link">Docker Compose</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>nginx</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/nginx/" class="sidebar-link">NGINX</a></li><li><a href="/nginx/config.html" class="sidebar-link">一键生成 nginx 配置</a></li><li><a href="/nginx/issue-ssl.html" class="sidebar-link">申请 SSL 证书</a></li><li><a href="/nginx/https.html" class="sidebar-link">NGINX HTTPS 配置文件</a></li><li><a href="/nginx/unit.html" class="sidebar-link">NGINX Unit</a></li><li><a href="/nginx/arg.html" class="sidebar-link">Nginx 内置变量</a></li><li><a href="/nginx/http3.html" class="sidebar-link">http3</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>PHP</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/php.html" class="sidebar-link">PHP 扩展列表</a></li><li><a href="/xdebug.html" class="sidebar-link">Xdebug in Docker + PhpStorm</a></li><li><a href="/laravel.html" class="sidebar-link">Laravel 最佳实践</a></li><li><a href="/composer.html" class="sidebar-link">Composer 最佳实践</a></li><li><a href="/phpunit.html" class="sidebar-link">PHPUnit in Docker + PHPStorm 最佳实践</a></li><li><a href="/xhprof.html" class="sidebar-link">XHProf</a></li><li><a href="/swoole.html" class="sidebar-link">Swoole</a></li><li><a href="/composer/" class="sidebar-link">Composer</a></li><li><a href="/composer/satis.html" class="sidebar-link">Satis</a></li><li><a href="/symfony.html" class="sidebar-link">Symfony</a></li><li><a href="/php_eol.html" class="sidebar-link">使用 EOL 的 PHP 版本</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>生产环境</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/production.html" class="sidebar-link">配置</a></li><li><a href="/swarm/" class="sidebar-link">Docker Swarm</a></li><li><a href="/kubernetes/" class="sidebar-link">在 Kubernetes 集群部署 LNMP</a></li><li><a href="/kubernetes/docker-desktop.html" class="sidebar-link">K8s on Docker Desktop</a></li><li><a href="/registry.html" aria-current="page" class="active sidebar-link">Docker Registry</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/registry.html#配置" class="sidebar-link">配置</a></li><li class="sidebar-sub-header"><a href="/registry.html#自签名证书" class="sidebar-link">自签名证书</a></li><li class="sidebar-sub-header"><a href="/registry.html#启动" class="sidebar-link">启动</a></li><li class="sidebar-sub-header"><a href="/registry.html#测试" class="sidebar-link">测试</a></li></ul></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>计划任务</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/crontab.html" class="sidebar-link">Crontab 计划任务</a></li><li><a href="/supervisord.html" class="sidebar-link">Supervisord</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>镜像构建</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/manifest.html" class="sidebar-link">构建支持多种架构的 Docker 镜像</a></li><li><a href="/buildx.html" class="sidebar-link">docker buildx</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>数据卷 Volumes</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/volumes/nfs.html" class="sidebar-link">NFS Volume(NFSv4)</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>集群</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/clusterkit/" class="sidebar-link">ClusterKit</a></li><li><a href="/clusterkit/memcached.html" class="sidebar-link">Memcached</a></li><li><a href="/clusterkit/mysql.html" class="sidebar-link">MySQL 复制</a></li><li><a href="/clusterkit/redis_cluster.html" class="sidebar-link">Redis 集群版 (redis-cli --cluster)</a></li><li><a href="/clusterkit/redis_replication.html" class="sidebar-link">Redis 主从版 (M-S) 复制模式 replication</a></li><li><a href="/clusterkit/redis_sentinel.html" class="sidebar-link">Redis 哨兵版 Sentinel</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>参考</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/dockerd.html" class="sidebar-link">dockerd</a></li><li><a href="/dockerfiles.html" class="sidebar-link">Dockerfile 注意事项</a></li><li><a href="/systemd.html" class="sidebar-link">systemd</a></li><li><a href="/journalctl.html" class="sidebar-link">systemd 日志管理</a></li><li><a href="/git.html" class="sidebar-link">Git Tips</a></li><li><a href="/gpg.html" class="sidebar-link">Git GPG</a></li><li><a href="/network.html" class="sidebar-link">国内网络问题</a></li><li><a href="/mirror.html" class="sidebar-link">Docker 常用镜像站点</a></li><li><a href="/windows/container.html" class="sidebar-link">Windows Container</a></li><li><a href="/arm.html" class="sidebar-link">ARM 架构</a></li><li><a href="/ab.html" class="sidebar-link">ab command</a></li><li><a href="/minio.html" class="sidebar-link">Minio</a></li><li><a href="/windows/wsl2.html" class="sidebar-link">WSL2</a></li><li><a href="/powershell.html" class="sidebar-link">PowerShell</a></li><li><a href="/go.html" class="sidebar-link">Go</a></li><li><a href="/github.html" class="sidebar-link">GitHub</a></li><li><a href="/vscode.html" class="sidebar-link">VSCode</a></li><li><a href="/cgroupv2.html" class="sidebar-link">cGroupv2</a></li><li><a href="/iscsi.html" class="sidebar-link">ISCSI</a></li><li><a href="/mount.html" class="sidebar-link">文件挂载相关命令</a></li><li><a href="/cfssl.html" class="sidebar-link">CFSSL</a></li><li><a href="/ssh.html" class="sidebar-link">SSH</a></li><li><a href="/encrypt.html" class="sidebar-link">加解密文件</a></li><li><a href="/coding/ci.html" class="sidebar-link">【玩转腾讯云】在 CODING DevOps 持续集成中使用 Buildx 构建 Docker 镜像</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="docker-registry"><a href="#docker-registry" class="header-anchor">#</a> Docker Registry</h1> <h2 id="配置"><a href="#配置" class="header-anchor">#</a> 配置</h2> <p>参考 <a href="/lrew.html">LREW</a> 启用 <code>registry</code>。</p> <p>笔者以 <code>docker.t.khs1994.com</code> 为 <code>Docker Registry</code> 的地址,请读者根据实际替换为自己的地址。</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token comment"># 1. 生成证书</span>
$ ./lnmp-docker ssl-self docker.t.khs1994.com
<span class="token comment"># 或者放入你自己的证书 config/nginx/ssl</span>
<span class="token comment"># docker.t.khs1994.com.key</span>
<span class="token comment"># docker.t.khs1994.com.crt</span>
<span class="token comment"># 2. 生成密钥</span>
$ <span class="token assign-left variable">username</span><span class="token operator">=</span>root <span class="token punctuation">;</span> <span class="token assign-left variable">password</span><span class="token operator">=</span>root
$ docker run --init --rm <span class="token punctuation">\</span>
--entrypoint htpasswd <span class="token punctuation">\</span>
httpd:alpine <span class="token punctuation">\</span>
-Bbn <span class="token variable">$username</span> <span class="token variable">$password</span> <span class="token operator">></span> config/nginx/auth/docker_registry.htpasswd
<span class="token comment"># 部分 nginx 可能不能解密,你可以替换为下面的命令</span>
<span class="token comment"># -mbn $username $password > config/nginx/auth/docker_registry.htpasswd</span>
$ <span class="token function">cp</span> config/nginx/demo.config/docker-registry.config config/nginx/docker-registry.conf
<span class="token comment"># 4. 编辑 config/nginx/registry.conf 文件</span>
<span class="token comment"># 替换 REGISTRY_DOMAIN 为 docker.t.khs1994.com</span>
<span class="token comment"># 5. 编辑 docker registry 配置文件 config/registry/config.yml</span>
</code></pre></div><h2 id="自签名证书"><a href="#自签名证书" class="header-anchor">#</a> 自签名证书</h2> <ul><li>https://www.aidmin.cn/server/docker-registry-with-self-signed-ssl-certificate.html</li> <li>https://docs.docker.com/registry/insecure/#use-self-signed-certificates</li> <li>https://docs.docker.com/docker-for-windows/faqs/#how-do-i-add-custom-ca-certificates</li> <li>https://docs.docker.com/docker-for-windows/#adding-tls-certificates</li> <li>https://docs.docker.com/engine/security/certificates/</li></ul> <p>如果你的证书为自签名证书</p> <p>Linux 上将 CA 证书放入 <code>/etc/docker/certs.d/myregistrydomain.com:5000/ca.crt</code>(Docker 守护端所在主机),在 Docker 桌面版(Windows、macOS)中放到 <code>~/.docker/certs.d/myregistrydomain.com:5000/ca.crt</code>。</p> <blockquote><p>若 registry 解析到 <code>127.0.0.0/8</code>,可能不需要配置。</p></blockquote> <div class="language-bash extra-class"><pre class="language-bash"><code>/etc/docker/certs.d/ <span class="token operator"><</span>-- Certificate directory
└── localhost:5000 <span class="token operator"><</span>-- Hostname:port
├── client.cert <span class="token operator"><</span>-- Client certificate
├── client.key <span class="token operator"><</span>-- Client key
└── ca.crt <span class="token operator"><</span>-- Certificate authority that signed
the registry certificate
└── https.registry.domain.com <span class="token operator"><</span>-- Hostname without port
├── client.cert
├── client.key
└── ca.crt
</code></pre></div><p>若启用了验证功能(密码登录),可能仍然会 <a href="https://docs.docker.com/registry/insecure/#troubleshoot-insecure-registry" target="_blank" rel="noopener noreferrer">出现错误<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a>。这时 <strong>必须</strong> 将 CA 写入系统文件夹(Docker 守护端所在主机)。</p> <p><strong>Linux</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token comment"># centos</span>
$ <span class="token function">cp</span> config/nginx/ssl/root-ca.crt /etc/pki/ca-trust/source/anchors/myregistrydomain.com.crt
$ update-ca-trust
<span class="token comment"># ubuntu</span>
$ <span class="token function">cp</span> config/nginx/ssl/root-ca.crt /usr/local/share/ca-certificates/myregistrydomain.com.crt
$ update-ca-certificates
<span class="token comment"># 重启 docker</span>
$ <span class="token function">sudo</span> systemctl restart docker
</code></pre></div><p><strong>Windows</strong></p> <ul><li><p>https://docs.docker.com/registry/insecure/#windows</p></li> <li><p>右键点击 CA 证书,选择 <code>安装证书</code></p></li> <li><p>Store location: local machine (<code>存储位置</code> -> <code>本地计算机</code> -> <code>下一步</code>)</p></li> <li><p>Check place all certificates in the following store(选择 <code>将所有的证书都放入下列存储</code>)</p></li> <li><p>Click Browser, and select Trusted Root Certificate Authorities(点击 <code>浏览</code>,选择 <code>受信任的根证书颁发机构</code>,点击 <code>确定</code>,下一步)</p></li> <li><p>Click Finish (点击 <code>完成</code>)</p></li> <li><p>重启 Docker</p></li> <li><p>https://docs.microsoft.com/zh-cn/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc754841(v=ws.11)?redirectedfrom=MSDN</p></li></ul> <p><strong>macOS</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code>$ security add-trusted-cert -d -r trustRoot -k ~/Library/Keychains/login.keychain ca.crt
</code></pre></div><h2 id="启动"><a href="#启动" class="header-anchor">#</a> 启动</h2> <div class="language-bash extra-class"><pre class="language-bash"><code>$ ./lnmp-docker up
</code></pre></div><h2 id="测试"><a href="#测试" class="header-anchor">#</a> 测试</h2> <div class="language-bash extra-class"><pre class="language-bash"><code>$ docker login docker.t.khs1994.com
$ docker pull alpine
$ docker tag alpine docker.t.khs1994.com/alpine
$ docker push docker.t.khs1994.com/alpine
</code></pre></div></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/khs1994-docker/lnmp/edit/master/docs/registry.md" target="_blank" rel="noopener noreferrer">Edit this page</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
←
<a href="/kubernetes/docker-desktop.html" class="prev">
K8s on Docker Desktop
</a></span> <span class="next"><a href="/crontab.html">
Crontab 计划任务
</a>
→
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/assets/js/app.209f2259.js" defer></script><script src="/assets/js/2.8af6cdaa.js" defer></script><script src="/assets/js/81.e68b030b.js" defer></script>
</body>
</html>