在CentOS上搭建Docker私有仓库可以使用Docker Registry。以下是一个详细的步骤指南:
首先,确保你的CentOS系统上已经安装了Docker。如果没有安装,可以使用以下命令进行安装:
sudo yum update -y
sudo yum install -y docker
启动Docker服务并设置开机自启:
sudo systemctl start docker
sudo systemctl enable docker
使用以下命令创建一个Docker Registry容器:
docker run -d -p 5000:5000 --restart=always --name registry registry:2
这个命令会启动一个名为registry
的容器,并将容器的5000端口映射到主机的5000端口。
为了让本地的Docker客户端能够与私有仓库通信,你需要配置Docker客户端。创建或编辑/etc/docker/daemon.json
文件,添加以下内容:
{
"insecure-registries" : ["your-server-ip:5000"]
}
将your-server-ip
替换为你的服务器IP地址。然后重启Docker服务:
sudo systemctl restart docker
假设你已经有一个本地镜像,你可以将其标记并推送到私有仓库。例如:
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地址。
你可以从私有仓库拉取镜像并运行容器:
docker pull your-server-ip:5000/your-image:latest
docker run -d your-server-ip:5000/your-image:latest
为了提高安全性,建议使用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 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
创建或编辑/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加密通信,提高了安全性。