在CentOS上的Docker私有注册表

目录

介绍

必要条件

私有Docker注册表设置

客户机上需要的操作


介绍

大多数IT公司都不会向生产系统提供互联网设施,但Docker hub需要互联网,而且安全性较低(所有人都可以使用)。为了保护我们的Docker镜像,我们必须在私有Docker注册表中本地化保存图像。

当我们的环境中有大量的docker主机时,在内部网络中创建我们自己的私有Docker 注册表有助于我们从私有服务器管理映像,而无需为docker客户端提供Internet访问。

必要条件

  • Docker注册表主机k8s-master.com
  • 客户k8s-client.com
  • 操作系统CentOS
  • Docker版本18.06
  • Internet:需要在注册表服务器上从Docker hub中提取映像

注意:对于Docker私有注册表,Docker注册表和客户机都必须安装Docker

私有Docker注册表设置

1、如果您没有TTL证书,请创建一个目录并将TTL证书放在该目录中,创建SSL证书以保护我们的Docker私有注册表:

mkdir -p /data/certs
cp domain.crt domain.key /data/certs/ 
openssl req \
  -newkey rsa:4096 -nodes -sha256 -keyout /data/certs/domain.key \
  -x509 -days 365 -out /data/certs/domain.crt (if you don't have original TTL Certificates).

2、创建一个存储Docker镜像的目录:

mkdir -p /data/images

3、在docker主机中运行Docker注册表容器:

docker run -d -p 6000:5000 \
-v /data/images:/var/lib/registry \
-v /data/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
--restart on-failure \
--name registry \
docker.io/registry

4、检查主机上的Docker注册表容器状态和linux中的侦听端口:

docker ps
netstat -tulpn | grep 6000

5、从Docker hub中提取图像并将其推送到私有Docker hub

docker pull nginx 
docker tag nginx localhost:6000/nginx

6、验证Docker镜像是否已推送到私有注册表:

ll data/images/docker/registry/v2/repositories/

7、将TTL证书从主机复制到客户端计算机:

scp -r /data/certs/* <IP-Addr-Clent>:/root/

客户机上需要的操作

1、Docker客户端使用我们的TTL / SSL证书。

mkdir -p /etc/docker/certs.d/k8s-master.com:6000/
cp -rf /root/tcsmkrishi.crt /etc/docker/certs.d/k8s-master.com:6000/

2、从docker私有注册表中提取图像并使用它。

docker pull k8s-master.com:6000/nginx
docker push k8s-master.com:6000/nginx

 

原文地址:https://www.codeproject.com/Tips/1277381/Docker-Private-Registry-on-CentOS

猜你喜欢

转载自blog.csdn.net/mzl87/article/details/87785015
今日推荐