1. 程式人生 > >Docker Registry建立自己私有倉庫

Docker Registry建立自己私有倉庫

docker run -d -p 5000:5000 --name registry registry:2

建立自己映象,或隨便pull一個,用來測試

docker pull centos

tag這個映象目的是讓其指向你的倉庫

docker tag centos localhost:5000/myfirstimage

這裡寫圖片描述
上傳到倉庫

docker push localhost:5000/myfirstimage

這裡寫圖片描述
拉取映象

docker pull localhost:5000/myfirstimage

這裡寫圖片描述
停止容器,刪除資料

docker stop registry && docker rm -v registry
vi /etc/pki/tls/openssl.cnf

這裡寫圖片描述
這裡寫圖片描述
CA 目錄下新建兩個檔案。serial 檔案存放證書序列

cd /etc/pki/CA
touch index.txt serial
echo 01 > serial

生成根金鑰

openssl genrsa -out private/cakey.pem 2048

生成根證書

openssl req -new -x509 -key private/cakey.pem -out cacert.pem

這裡寫圖片描述
可以隨便填,可選的可以不填,必填的要記住,common name 填registry 伺服器域名。
CA伺服器配置就這樣,然後配置docker registry伺服器(這裡是同一臺機器)。
在docker目錄下新建ssl

cd /etc/docker
mkdir ssl
cd ssl

生成ssl金鑰

openssl genrsa -out docker.key 2048

生成證書籤署請求

openssl req -new -key docker.key -out docker.csr

這裡寫圖片描述
CA根據請求來簽署證書
openssl ca -in docker.csr -out docker.crt
啟動registry.

docker run -d \
--restart=always \
--name registry \
-v /etc/docker/ssl:/certs \
-e REGISTRY_HTTP_ADDR
=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/docker.crt \ -e REGISTRY_HTTP_TLS_KEY=/certs/docker.key \ -p 443:443 \ registry:2

將證書安裝到另一個裝有Docker機器:
先將/etc/pki/CA/newcerts/01.pem 和/etc/pki/CA/cacert.pem (根金鑰) 拷貝到另一臺docker機器。
先將tls-ca-bundle.pem 備份,再把證書匯入到這裡面。

cd /etc/pki/ca-trust/extracted/pem/
mv tls-ca-bundle.pem tls-ca-bundle.pem.bacup
cat /home/tanzhang/01.pem >> tls-ca-bundle.pem
cat /home/tanzhang/cacert.pem >> tls-ca-bundle.pem

編輯hosts
vi /etc/hosts
新增registry 伺服器ip 和 域名
registry.domain.com

然後重啟

再進入機器push image

docker tag centos registry.domain.com/mcentos
docker push registry.domain.com/mcentos

這裡寫圖片描述