簡介:咱們能夠把本身的image上傳到dockerhub或者阿里雲的docker鏡像倉庫,但在實際使用中咱們不少時候都用的是本身的registry,便於內部的共享等等優勢,docker鏡像默認支持https協議,能夠用http協議,可是強烈不推薦,http協議只適合用實驗階段並且不支持設置用戶名和密碼。http認證是須要錢的對於只想作作實驗的同窗來講是不可接受的,下面咱們介紹下利用Let’s Encrypt構建免費的https協議。git
Let’s Encrypt官網:https://letsencrypt.org/ github
環境:docker
docker版本:Docker version 17.03.0-ce, build 60ccb22ubuntu
服務器版本:CentOS Linux release 7.3.1611 (Core)瀏覽器
端口開放:443,80(防火牆開放)服務器
步驟:dom
1.從該服務器上面獲取證書:
$ git clone https://github.com/letsencrypt/letsencrypt.gitui
$ cd letsencrypt阿里雲
$ sudo ./letsencrypt-auto certonlyrest
2.根據該向導,選用standalone模式填寫本身的郵箱域名等等,最後獲取到的證書文件放在/etc/letsencrypt/archive/docker.mydomain.com/。首先備份這些證書到本身電腦上去
3.而後找一個地方存放證書
cp /etc/letsencrypt/archive/mydomain.com/cert1.pem /home/certs/docker.mydomain.com.crt
cp /etc/letsencrypt/archive/mydomain.com/privkey1.pem /home/certs/docker.mydomain.com.key
啓動這個證書後在瀏覽器裏面已經能夠看到https成功訪問了,可是docker支持的不夠好,但你push,pull的時候會報錯unknow authority,這個時候咱們須要繼續在Let’s Encrypt官網下載兩個證書
wget https://letsencrypt.org/certs/isrgrootx1.pem
wget https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem
下好了之後咱們把下面兩個證書整合到.crt證書中,最簡單的辦法就是進入下面兩個文件文件直接copy所有內容,而後粘貼到上面的.crt文件中,最後.crt文件有三對begin和end
最後咱們啓動docker registry:
docker run -d -p 5000:5000 --restart=always --name registry \
-v /opt/data:/var/lib/registry \
-v /home/certs:/certs \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/docker.mydomain.com.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/docker.mydomain.com.key \
registry:2
咱們就能夠直接push,pull了例如:push ubuntu docker.mydomain.com:5000/ubuntu