±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚcnblogs£¬±¾ÎÄÖ÷Òª½²ÊöÁ˴˽ÓоµÏñ²Ö¿â£¬»¹ÓÐʵսµÄÏêϸ½²½â£¬Ï£ÍûÄܶԴó¼ÒµÄѧϰÓÐËù°ïÖú¡£ |
|
1¡¢ÊµÕ½Ä¿µÄ
´î½¨Æóҵ˽ÓеľµÏñ²Ö¿â£¬Âú×ã´Ó¿ª·¢»·¾³ÍÆËͺÍÀÈ¡¾µÏñ¡£µ±ÎÒÃÇʹÓÃk8sÀ´±àÅź͵÷¶ÈÈÝÆ÷ʱ£¬²Ù×÷µÄ»ù±¾µ¥Î»ÊǾµÏñ£¬ËùÒÔÐèÒª´Ó²Ö¿âÈ¥ÀÈ¡¾µÏñµ½µ±Ç°µÄ¹¤×÷½Úµã¡£±¾À´Ê¹Óù«¹²µÄdocker
hubÍêÈ«¿ÉÒÔÂú×ãÎÒÃǵÄÐèÇó£¬Ò²·Ç³£·½±ã£¬µ«ÊÇÉÏ´«µÄ¾µÏñÈκÎÈ˶¼¿ÉÒÔ·ÃÎÊ£¬Æä´Îdocker hubµÄ˽ÓвֿâÓÖÊÇÊշѵģ¬ËùÒÔ´Ó°²È«ºÍÉÌÒµÁ½·½Ã濼ÂÇ£¬ÆóÒµ±ØÐë´î½¨×Ô¼ºµÄ˽ÓоµÏñ²Ö¿â¡£
2¡¢´î½¨Ë½Óвֿâ
2.1¡¢Éú²úÖ¤Êé
ΪÁ˱£Ö¤¾µÏñ´«Ê䰲ȫ£¬´Ó¿ª·¢»·¾³Ïò˽ÓвֿâÍÆËͺÍÀÈ¡¾µÏñʱ£¬Ò»°ãʹÓÃhttpsµÄ·½Ê½£¨±¸×¢£º¶ÔÓÚÆÕͨµÄhttp·½Ê½Çë´ó¼Ò²Î¿¼¹Ù·½Îĵµ£ºhttps://docs.docker.com/registry/insecure/#deploy-a-plain-http-registry×Ô¼ºÏÂȥʵս¡££©£¬ËùÒÔÎÒÃÇÐèÒªÌṩһ¸ö¿ÉÐÅÈεġ¢ÖªÃûµÄSSL/TLSÖ¤Ê飬¿ÉÒÔÏòÖªÃûµÄµÚÈý·½Ö¤Êé°ä·¢»ú¹¹¹ºÂòÖ¤Ê飬Ҳ¿ÉÒÔʹÓÃLet¡¯s EncryptÉú²úÃâ·ÑµÄÖ¤Ê飬»¹¿ÉÒÔ×Ô¼ºÉú²úÒ»¸ö×ÔÇ©ÃûÖ¤Êé¡£
ÓÉÓÚûÓйºÂòÕæÊµµÄÓòÃû£¬ÎÞ·¨ºÍµÚÈý·½Ö¤Êé°ä·¢»ú¹¹½øÐн»»¥ÐÔÑéÖ¤£¬ËùÒÔ¾ö¶¨×Ô¼ºÉú²úÒ»¸ö×ÔÇ©ÃûÖ¤Ê飬Ìí¼Óµ½Ë½Óвֿ⣬ȻºóÈÃdocker¿Í»§¶ËÐÅÈδËÖ¤Êé¡£
´´½¨Ò»¸öÓÃÓÚ´æ´¢Ö¤ÊéºÍ˽ԿµÄĿ¼certs
Éú²úÖ¤ÊéºÍ˽Կ
$ openssl req \
-newkey rsa:4096 -nodes -sha256 -keyout certs/domain.key \
-x509 -days 365 -out certs/domain.crt |
×¢ÒâÌáǰÏëºÃÓòÃû(È磺registry.wuling.com)£¬²¢½«Æä×÷ΪCN£¬Õû¸ö¹ý³ÌÈçͼËùʾ£º

²é¿´Éú³ÉÖ¤Ê飺

2.2¡¢ÔËÐÐÈÝÆ÷£¬Æô¶¯¾µÏñ²Ö¿â
ʹÓÃdocker¿ªÔ´µÄRegistry:2¾µÏñ£¬Èçͼ£º

Ö´ÐÐÏÂÃæÃüÁ
$ docker run -d \
--restart=always \
--name registry.wuling.com \
-v `pwd`/certs:/certs \
-e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
-e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt \
-e REGISTRY_HTTP_TLS_KEY=/certs/domain.key \
-p 443:443 \
registry:2 |
²ÎÊý ˵Ã÷
-d ºǫ́¾²Ä¬ÔËÐÐÈÝÆ÷¡£
-restart ÉèÖÃÈÝÆ÷ÖØÆô²ßÂÔ¡£
-name ÃüÃûÈÝÆ÷¡£
-v ¹ÒÔØhostµÄcerts/Ŀ¼µ½ÈÝÆ÷µÄ/certs/Ŀ¼¡£
-e REGISTRY_HTTP_ADDR ÉèÖòֿâÖ÷»úµØÖ·¸ñʽ¡£
-e REGISTRY_HTTP_TLS_CERTIFICATE ÉèÖû·¾³±äÁ¿¸æËßÈÝÆ÷Ö¤ÊéµÄλÖá£
-e REGISTRY_HTTP_TLS_KEY ÉèÖû·¾³±äÁ¿¸æËßÈÝÆ÷˽ԿµÄλÖá£
-p ½«ÈÝÆ÷µÄ 443 ¶Ë¿ÚÓ³Éäµ½HostµÄ 443 ¶Ë¿Ú¡£
ÈçͼËùʾ£º

´ÔÉÏͼ¿ÉÒÔ¿´µ½£¬·þÎñ¶Ë˽ÓвֿâÒѾÕý³£ÔËÐÐÆðÀ´ÁË£¡£¡£¡
3¡¢ÊµÕ½(´Ó·þÎñÆ÷ºÍ¿ª·¢»·¾³·Ö±ðÍÆËͺÍÀÈ¡¾µÏñ)
3.1 ·þÎñÆ÷(˽ÓвֿâËùÔÚÖ÷»ú)
3.1.1¡¢ÏÂÔØ²¢ÖØÃüÃû¾µÏñ
¾µÏñµÄÍêÕûÃüÃû¸ñʽ£º[registry-host]:[port]/[username]/[imagename]£¬µ±ÎÒÃÇʹÓÃdocker
pushµÄʱºò£¬docker»á×Ô¶¯Ê¶±ð[registry-host]²¿·ÖΪÈÝÆ÷¾µÏñ²Ö¿âµØÖ·¡£
ʹÓÃdocker tagÖØÃüÃû¾µÏñ£º
docker pull justmine/helloworldapi:v2.2
docker tag justmine/helloworldapi:v2.2 registry.wuling.com/justmine/helloworldapi:v2.2 |

3.1.2¡¢ÍÆË;µÏñµ½Ë½Óвֿâ

ʲôÇé¿ö£¿Å¶Å¶Å¶£¡£¡£¡ÓòÃûÊÇÎÒÃǶÅ׫µÄ£¬ÐèÒª½«ÓëIPÓ³Éä¹ØÏµÐ´ÈëhostsÎļþ¡£

ÔÙ´ÎÍÆËÍ£¬ÈçÏÂ:

x509: certificate signed by unknown authority |
ÓÖÊÇʲôÇé¿ö£¿Å¶Å¶Å¶£¡£¡£¡ÔÀ´ÏµÍ³²»ÐÅÈÎÎÒÃǰ䷢µÄÖ¤Ê飬ºÃ°É£¬²»ÖªÃû¾Í²»ÐÅÈΣ¬ÄÇÎÒÃǾÍÖ÷¶¯Ðû²¼´ËÖ¤ÊéÊÇÖµµÃÐÅÈεģ¡£¡£¡
Ϊdocker client°²×°Ö¤Ê飬ÃüÁîÈçÏ£º
$ sudo mkdir -p /etc/docker/certs.d/registry.wuling.com
$ sudo cp certs/domain.crt /etc/docker/certs.d/registry.wuling.com/ca.crt |

ÔÙ´ÎÍÆËÍ£º

³É¹¦ÁË£¡£¡£¡
3.1.3¡¢Í¨¹ýä¯ÀÀÆ÷²é¿´²Ö¿â¸Å¿ö
²Ö¿â¾µÏñĿ¼£º
https://registry.wuling.com/v2/_catalog |

¾µÏñÏêÇé
https://registry.wuling.com/v2/justmine/helloworldapi/tags/list |

3.2 ÆäËûËÞÖ÷»ú(¿ª·¢»·¾³WindowsÖ÷»ú)
3.2.1 ÍÆË;µÏñµ½Ë½Óвֿâ
docker push registry.wuling.com/justmine/healthchecksapi:v1.5 |

ͬÀí£ºÎªÁËÈõ±Ç°WindowsÖ÷»úÉÏÔËÐеÄdockerÐÅÈδËÖ¤Ê飬ÎÒÃÇÖ»ÐèÒªÔÚWindowsÖ÷»úÉϰ²×°´ËÖ¤Ê飬ÓÒ¼üµã»÷¡¾°²×°Ö¤Êé¡¿£¬Ñ¡Ôñ¡¾±¾µØÖ÷»ú¡¿£¬Ñ¡Ôñ¡¾ÊÜÐÅÈεĸùÖ¤Êé¡¿£¬Ìí¼ÓÖ¤Êé¼´¿É¡£Í¬Ê±½«ÓòÃûÓë˽ÓвֿâÖ÷»úipµÄÓ³Éä¹ØÏµÐ´Èëµ½WindowsÖ÷»úµÄhostsÎļþ¡£
ÖØÆôdocker£¬ÔÙ´ÎÍÆËÍ£º

°¥£¬ÖÕÓڳɹ¦ÁË£¬²»ÈÝÒ×°¡£¡£¡£¡
3.2.2 ÀÈ¡¾µÏñ
docker pull registry.wuling.com/justmine/healthchecksapi:v1.5 |

3.2.3¡¢Í¨¹ýä¯ÀÀÆ÷²é¿´²Ö¿â¸Å¿ö
²Ö¿â¾µÏñĿ¼£º
https://registry.wuling.com/v2/_catalog |

¾µÏñÏêÇé
https://registry.wuling.com/v2/justmine/healthchecksapi/tags/list |

µ½Ä¿Ç°ÎªÖ¹£¬Äܹ»Âú×ãÆóÒµÐèÇóµÄ˽ÓвֿâÕýʽ´î½¨Íê³É¡£ |