docker搭建本地镜像仓库(centos)

一、搭建仓库

下载镜像

docker pull registry

创建目录

mkdir -p /data/docker_reg

运行容器

docker run -d -p 2333:5000 --name=local_reg --restart=always --privileged=true  -v /data/docker_reg:/var/lib/registry  docker.io/registry

查看docker服务

service docker status

在这里插入图片描述
vi /usr/lib/systemd/system/docker.service
在ExecStart节点里增加

--insecure-registry 127.16.0.8:2333 \

在这里插入图片描述
重启服务

systemctl daemon-reload
service docker restart

停止的容器再拉起来一下

docker start local_reg
docker pull docker.io/hello-world
docker tag docker.io/hello-world 172.16.0.8:2333/hello-world
docker push 172.16.0.8:2333/hello-world

正常的话会显示

The push refers to a repository [172.16.0.8:2333/hello-world]
af0b15c8625b: Pushed
latest: digest: sha256:92c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a size: 524

二、创建ca证书以支持其他服务器的仓库访问

仓库所在服务器的配置

mkdir -r /data/certs
cd /data/certs
openssl req -newkey rsa:2048 -nodes -sha256 -keyout ca.key -x509 -days 365 -out ca.crt

这里创建时其他可以为空,但是server name必须要和后面使用的hostname对应
在这里插入图片描述
仓库服务重新起来

docker rm -f local_reg
docker run -d -p 2333:5000 --name=local_reg --restart=always --privileged=true  -v /data/docker_reg:/var/lib/registry -v /data/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/ca.crt -e REGISTRY_HTTP_TLS_KEY=/certs/ca.key docker.io/registry

重启下docker服务

service docker restart

客户机的配置
修改host文件

vi /etc/hosts

host名称和ca证书对应

172.16.0.8  docker-reg-host 

创建证书目录

mkdir -p /etc/docker/certs.d/docker-reg-host:2333/

将仓库服务器生成的ca.crt拷贝到这台客户机的/etc/docker/certs.d/docker-reg-host:2333/下
重启下docker服务

service docker restart

修改下镜像的名称就可以push了

docker tag docker.io/hello-world docker-reg-host:2333/hello-world
docker push docker-reg-host:2333/hello-world

pull也可以正常使用了

docker pull docker-reg-host:2333/hello-world
发布了70 篇原创文章 · 获赞 56 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/zhangenter/article/details/103568234
今日推荐