centos

如何在CentOS上搭建Docker私有仓库

小樊
46
2025-06-12 06:07:17
栏目: 智能运维

在CentOS上搭建Docker私有仓库可以使用Docker Registry。以下是一个详细的步骤指南:

1. 安装Docker

首先,确保你的CentOS系统上已经安装了Docker。如果没有安装,可以使用以下命令进行安装:

sudo yum update -y
sudo yum install -y docker

启动Docker服务并设置开机自启:

sudo systemctl start docker
sudo systemctl enable docker

2. 创建Docker Registry容器

使用以下命令创建一个Docker Registry容器:

docker run -d -p 5000:5000 --restart=always --name registry registry:2

这个命令会启动一个名为registry的容器,并将容器的5000端口映射到主机的5000端口。

3. 配置Docker客户端

为了让本地的Docker客户端能够与私有仓库通信,你需要配置Docker客户端。创建或编辑/etc/docker/daemon.json文件,添加以下内容:

{
  "insecure-registries" : ["your-server-ip:5000"]
}

your-server-ip替换为你的服务器IP地址。然后重启Docker服务:

sudo systemctl restart docker

4. 标记和推送镜像到私有仓库

假设你已经有一个本地镜像,你可以将其标记并推送到私有仓库。例如:

docker tag your-image:latest your-server-ip:5000/your-image:latest
docker push your-server-ip:5000/your-image:latest

your-image:latest替换为你的镜像名称和标签,your-server-ip替换为你的服务器IP地址。

5. 从私有仓库拉取镜像

你可以从私有仓库拉取镜像并运行容器:

docker pull your-server-ip:5000/your-image:latest
docker run -d your-server-ip:5000/your-image:latest

6. 安全性考虑

为了提高安全性,建议使用TLS加密通信。以下是配置TLS的步骤:

生成TLS证书

创建一个目录来存放证书和密钥:

mkdir -p /certs
cd /certs

生成CA证书和密钥:

openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca-key.pem -x509 -days 3650 -out ca-cert.pem

生成服务器证书和密钥:

openssl req -subj "/CN=your-server-ip" -sha256 -newkey rsa:4096 -keyout server-key.pem -out server-csr.pem
openssl x509 -req -in server-csr.pem -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -days 3650

配置Docker Registry使用TLS

修改Docker Registry容器的启动命令,添加TLS配置:

docker run -d -p 5000:5000 \
  --restart=always \
  --name registry \
  -v /certs:/certs \
  -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/server-cert.pem \
  -e REGISTRY_HTTP_TLS_KEY=/certs/server-key.pem \
  registry:2

配置Docker客户端使用TLS

创建或编辑/etc/docker/daemon.json文件,添加以下内容:

{
  "insecure-registries" : ["your-server-ip:5000"],
  "tls": true,
  "tlscacert": "/path/to/ca-cert.pem",
  "tlscert": "/path/to/client-cert.pem",
  "tlskey": "/path/to/client-key.pem"
}

/path/to/ca-cert.pem/path/to/client-cert.pem/path/to/client-key.pem替换为实际的证书和密钥路径。然后重启Docker服务:

sudo systemctl restart docker

现在,你的Docker私有仓库已经配置好了,并且使用了TLS加密通信,提高了安全性。

0
看了该问题的人还看了