下面我将为你详细讲解Docker搭建私有仓库(registry、harbor)的完整攻略,包括两条示例说明。
1. 搭建Docker私有仓库(registry)
1.1 准备工作
在开始搭建Docker私有仓库之前,需要做一些准备工作,包括:
- 安装Docker Engine: 在搭建Docker私有仓库之前,首先需要在服务器上安装好Docker Engine,具体安装方法可以参考官方文档 https://docs.docker.com/engine/install/
1.2 搭建Docker私有仓库
以下步骤将演示如何通过Docker Compose搭建一个简单的Docker私有仓库:
-
创建一个新的目录,比如“docker-registry”,进入该目录。
-
在该目录中创建一个名为“docker-compose.yml”的新文件,并将以下内容复制到该文件中:
version: '3.8'
services:
registry:
container_name: registry
image: registry:2.7.1
restart: always
ports:
- "5000:5000"
volumes:
- ./data:/var/lib/registry
- ./config.yml:/etc/docker/registry/config.yml
以上配置文件将启动一个名为“registry”的容器,使用“registry:2.7.1”的镜像。该容器将在端口5000上监听,并将私有镜像存储在“/var/lib/registry”目录中。
-
在同级目录中创建一个名为“data”的新文件夹,用于存储Docker私有仓库存储的镜像。
-
在同级目录中创建一个名为“config.yml”的新文件,并将以下内容复制到该文件中:
version: 0.1
log:
level: debug
formatter: text
fields:
service: registry
environment: production
storage:
cache:
layerinfo: inmemory
filesystem:
rootdirectory: /var/lib/registry
http:
addr: :5000
headers:
X-Content-Type-Options: [nosniff]
health:
storagedriver:
enabled: true
interval: 10s
threshold: 3
以上配置文件将配置私有仓库的一些基本设置,如存储路径和端口号等。
- 启动私有仓库
执行以下命令,启动私有仓库。
docker-compose up -d
通过以上步骤,我们就成功搭建了一个简单的Docker私有仓库。现在可以通过以下命令将本地镜像推送到该私有仓库:
docker tag IMAGE registry:5000/IMAGE
docker push registry:5000/IMAGE
其中,IMAGE为您要推送的镜像的名称。
PS:这里我们利用了本地的Docker Engine将镜像推送到私有仓库,也可以利用其他Docker客户端将镜像推送到私有仓库,具体方法可以在官网中查看相关文档。
2. 搭建Docker私有仓库(Harbor)
2.1 准备工作
在开始搭建Docker私有仓库(Harbor)之前,需要做一些准备工作,包括:
- 安装Docker Engine: 在搭建Docker私有仓库(Harbor)之前,首先需要在服务器上安装好Docker Engine,具体安装方法可以参考官方文档 https://docs.docker.com/engine/install/
2.2 搭建Docker私有仓库(Harbor)
以下步骤将演示如何通过Docker Compose搭建一个简单的Docker私有仓库(Harbor):
- 下载并安装Harbor
可以在以下链接中下载并安装最新版的Harbor:https://github.com/goharbor/harbor/releases
下载完成后,解压缩安装包,并进入其目录。
- 编辑配置文件
在Harbor目录下有一个“harbor.yml”文件,我们需要对其进行编辑,在文件中修改以下内容:
hostname: registry.example.com
以上配置将会给Harbor一个域名,您需要将“registry.example.com”替换为您自己的域名或IP地址等。
- 启动Harbor
在Harbor目录中执行以下命令启动Harbor:
docker-compose up -d
通过以上步骤,我们就成功搭建了一个Docker私有仓库(Harbor)。现在可以通过以下命令将本地镜像推送到该私有仓库:
docker login registry.example.com
docker tag IMAGE registry.example.com/PROJECT/IMAGE
docker push registry.example.com/PROJECT/IMAGE
其中,IMAGE为您要推送的镜像的名称,PROJECT可以为空,也可以替换为您自己的项目名称。
PS:这里我们利用了本地的Docker Engine将镜像推送到私有仓库,也可以利用其他Docker客户端将镜像推送到私有仓库,具体方法可以在官网中查看相关文档。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Docker 搭建私有仓库(registry、harbor) - Python技术站