# Docker如何搭建本地私有倉庫
## 一、私有倉庫的作用
在企業或團隊開發中,使用Docker私有倉庫(Registry)有以下優勢:
1. **安全隔離**:避免將敏感鏡像暴露在公網
2. **帶寬優化**:減少從Docker Hub重復拉取鏡像的時間消耗
3. **版本控制**:自主管理內部鏡像版本
## 二、快速搭建私有倉庫
### 1. 使用官方Registry鏡像
```bash
# 拉取最新registry鏡像
docker pull registry:2
# 啟動容器(默認使用5000端口)
docker run -d -p 5000:5000 --name my-registry registry:2
# 生成自簽名證書
openssl req -x509 -newkey rsa:4096 -nodes -keyout domain.key -out domain.crt -days 365
# 啟動帶證書的registry
docker run -d -p 5000:5000 --name secure-registry \
-v $(pwd)/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
registry:2
編輯/etc/docker/daemon.json:
{
"insecure-registries": ["your-server-ip:5000"]
}
重啟Docker服務:sudo systemctl restart docker
# 標記本地鏡像
docker tag nginx:alpine your-server-ip:5000/my-nginx
# 推送鏡像
docker push your-server-ip:5000/my-nginx
# 拉取鏡像
docker pull your-server-ip:5000/my-nginx
# 創建密碼文件
docker run --entrypoint htpasswd registry:2 -Bbn user password > auth/htpasswd
# 啟動帶認證的registry
docker run -d -p 5000:5000 --name auth-registry \
-v $(pwd)/auth:/auth \
-e "REGISTRY_AUTH=htpasswd" \
-e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
-e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
registry:2
docker-registry-ui等開源項目實現可視化管理。registry:2自帶的垃圾回收機制通過以上步驟,您已成功搭建企業級Docker私有倉庫,后續可通過CI/CD流水線實現自動化鏡像發布。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。