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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章