在Linux系统上部署Docker私有仓库,可以按照以下步骤进行:

1. 安装Docker
首先确保你的Linux系统已经安装了Docker,如果没有安装,可以参考官方文档进行安装:https://docs.docker.com/engine/install/
2. 安装Docker Compose
Docker Compose是一个用于定义和运行多容器Docker应用程序的工具,通过使用Compose,你可以使用YAML文件来配置应用程序的服务,要安装Docker Compose,请运行以下命令:
sudo curl L "https://github.com/docker/compose/releases/download/1.29.2/dockercompose$(uname s)$(uname m)" o /usr/local/bin/dockercompose sudo chmod +x /usr/local/bin/dockercompose
3. 创建Docker Compose配置文件
创建一个名为dockercompose.yml的文件,内容如下:
version: '3.7'
services:
registry:
image: registry:2
container_name: dockerregistry
ports:
"5000:5000"
volumes:
./data:/var/lib/registry
restart: always
proxy:
image: nginx:alpine
container_name: dockerregistryproxy
ports:
"80:80"
volumes:
./proxy/nginx.conf:/etc/nginx/nginx.conf
./proxy/certs:/etc/nginx/certs
depends_on:
registry
restart: always
这个配置文件定义了两个服务:registry和proxy。registry服务使用registry:2镜像,将容器的5000端口映射到主机的5000端口。proxy服务使用nginx:alpine镜像,将容器的80端口映射到主机的80端口。
4. 创建Nginx配置文件
在proxy服务的配置文件中,我们需要创建一个Nginx配置文件来反向代理请求到Docker Registry,创建一个名为proxy/nginx.conf的文件,内容如下:
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://dockerregistry:5000;
proxy_set_header Host $host;
proxy_set_header XRealIP $remote_addr;
proxy_set_header XForwardedFor $proxy_add_x_forwarded_for;
proxy_set_header XForwardedProto $scheme;
}
}
}
5. 创建SSL证书
为了让Docker Registry支持HTTPS,我们需要为其创建一个SSL证书,可以使用certbot工具自动生成证书,首先安装certbot:
sudo aptget update sudo aptget install softwarepropertiescommon sudo addaptrepository ppa:certbot/certbot sudo aptget update sudo aptget install pythoncertbotnginx
然后运行以下命令生成证书:
sudo certbot nginx d localhost dnoninteractive agreetos email
这将为localhost和你的域名生成SSL证书,将生成的证书文件(通常是.crt和.key文件)复制到proxy/certs目录下。
6. 启动Docker Compose
在包含dockercompose.yml文件的目录中,运行以下命令启动Docker Compose:
dockercompose up d
这将在后台启动registry和proxy服务,现在你已经成功部署了一个Docker私有仓库。
7. 访问Docker私有仓库
要访问Docker私有仓库,请使用以下命令登录:
docker login localhost up
现在你可以使用docker push和docker pull命令推送和拉取镜像到你的私有仓库。