插件窝 干货文章 怎么创建一个docker仓库

怎么创建一个docker仓库

Registry 仓库 Docker Harbor 124    来源:    2025-04-26

如何创建 Docker 仓库

创建 Docker 仓库主要有以下几种方式,我将为您详细介绍每种方法:

1. 使用 Docker Hub (官方公共仓库)

最简单的方式是使用 Docker 官方的公共仓库:

  1. 访问 Docker Hub
  2. 注册一个账户
  3. 登录后点击"Create Repository"按钮
  4. 填写仓库名称、描述等信息
  5. 选择公开(Public)或私有(Private)

2. 自建私有 Docker Registry

使用 Docker 官方提供的 Registry 镜像搭建私有仓库:

快速启动本地 Registry

# 拉取 registry 镜像
docker pull registry:2

# 运行 registry 容器
docker run -d -p 5000:5000 --name my-registry registry:2

生产环境配置

# 带认证和持久化存储的 registry
mkdir -p /data/registry

docker run -d \
  -p 5000:5000 \
  --restart=always \
  --name registry \
  -v /data/registry:/var/lib/registry \
  -v /path/to/auth:/auth \
  -e "REGISTRY_AUTH=htpasswd" \
  -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \
  -e "REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd" \
  registry:2

配置 TLS 加密

docker run -d \
  --restart=always \
  --name registry \
  -v /data/registry:/var/lib/registry \
  -v /path/to/certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
  -e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
  -p 443:443 \
  registry:2

3. 使用第三方仓库服务

  • Harbor: 企业级 Docker Registry 服务
  • GitLab Container Registry: GitLab 内置的容器仓库
  • AWS ECR: Amazon Elastic Container Registry
  • Google Container Registry: GCP 的容器仓库
  • Azure Container Registry: 微软 Azure 的容器仓库

4. 使用 Harbor 搭建企业级仓库

Harbor 是 VMware 开源的容器镜像仓库,提供更多企业级功能:

  1. 下载 Harbor 安装包: https://github.com/goharbor/harbor/releases
  2. 解压并配置 harbor.yml
  3. 运行安装脚本
# 下载和解压
wget https://github.com/goharbor/harbor/releases/download/v2.5.0/harbor-offline-installer-v2.5.0.tgz
tar xvf harbor-offline-installer-v2.5.0.tgz
cd harbor

# 配置 harbor.yml
cp harbor.yml.tmpl harbor.yml
vim harbor.yml  # 修改主机名、端口等配置

# 安装
./install.sh

使用仓库

推送镜像到私有仓库

# 标记镜像
docker tag my-image localhost:5000/my-image

# 推送镜像
docker push localhost:5000/my-image

从私有仓库拉取镜像

docker pull localhost:5000/my-image

注意事项

  1. 私有仓库默认使用 HTTP,生产环境应配置 HTTPS
  2. 考虑添加认证机制保护仓库
  3. 大型部署应考虑使用对象存储作为后端存储
  4. 定期清理无用镜像以节省空间

您需要哪种类型的仓库?我可以根据您的具体需求提供更详细的配置指导。