±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ²©¿ÍÔ°£¬¶ÔÓÚÆóÒµ¶øÑÔDocker
hubÌṩµÄ˽Óвֿâ¸öÊýÓÐÏÞ£¬¶ÔÓڳɱ¾ºÍ¹«Ë¾µÄ¼Ü¹¹À´Ëµ´î½¨×Ô¼ºµÄ˽ÓоµÏñ²Ö¿â²ÅÊÇÕýÈ·µÄµÀ·£¬±¾Îļòµ¥µÄ½éÉÜÁËÈçºÎ´î½¨Docker
hub¡£ |
|
ΪʲôҪ´î½¨Ë½ÓоµÏñ²Ö¿â
¶ÔÓÚÒ»¸ö¸Õ¸Õ½Ó´¥DockerµÄÈËÀ´Ëµ,¹Ù·½µÄDocker hubÊÇÓÃÓÚ¹ÜÀí¹«¹²¾µÏñ¡£¼ÈÈ»¹Ù·½ÌṩÁ˾µÏñ²Ö¿âÎÒÃÇΪʲô»¹ÒªÈ¥×Ô¼º´î½¨Ë½ÓвֿâÄØ£¿ËäȻҲ¿ÉÒÔÍйÜ˽ÓоµÏñ¡£ÎÒÃÇ¿ÉÒԷdz£·½±ãµÄ°ÑÎÒÃÇ×Ô¼º¾µÏñÍÆËÍÉÏÈ¥£¬µ«ÊÇDocker
hubÌṩµÄ˽Óвֿâ¸öÊýÓÐÏÞ¡£¶ÔÓÚ¸öÈËÀ´ËµDocker hubÊǸö²»´íµÄÑ¡Ôñ£¬µ«ÊǶÔÓÚÆóÒµÀ´Ëµ£¬Ïà¶ÔÓÚ°²È«
£¬³É±¾ºÍ¹«Ë¾µÄ¼Ü¹¹À´Ëµ´î½¨×Ô¼ºµÄ˽ÓоµÏñ²Ö¿â²ÅÊÇÕýÈ·µÄµÀ·¡£
ʲôÊÇHarbor?ΪʲôҪѡÔñHarbor
HarborÊÇÒ»¸öÓÃÓÚ´æ´¢ºÍ·Ö·¢Docker¾µÏñµÄÆóÒµ¼¶Registry·þÎñÆ÷£¬Í¨¹ýÌí¼ÓһЩÆóÒµ±ØÐèµÄ¹¦ÄÜÌØÐÔ£¬ÀýÈ簲ȫ¡¢±êʶºÍ¹ÜÀíµÈ£¬À©Õ¹ÁË¿ªÔ´Docker
Distribution¡£×÷Ϊһ¸öÆóÒµ¼¶Ë½ÓÐRegistry·þÎñÆ÷£¬HarborÌṩÁ˸üºÃµÄÐÔÄܺͰ²È«¡£ÌáÉýÓû§Ê¹ÓÃRegistry¹¹½¨ºÍÔËÐл·¾³´«Êä¾µÏñµÄЧÂÊ¡£HarborÖ§³Ö°²×°ÔÚ¶à¸öRegistry½ÚµãµÄ¾µÏñ×ÊÔ´¸´ÖÆ£¬¾µÏñÈ«²¿±£´æÔÚ˽ÓÐRegistryÖУ¬
È·±£Êý¾ÝºÍ֪ʶ²úȨÔÚ¹«Ë¾ÄÚ²¿ÍøÂçÖйܿء£ÁíÍ⣬HarborÒ²ÌṩÁ˸߼¶µÄ°²È«ÌØÐÔ£¬ÖîÈçÓû§¹ÜÀí£¬·ÃÎÊ¿ØÖƺͻÉó¼ÆµÈ¡£
1.»ùÓÚ½ÇÉ«µÄ·ÃÎÊ¿ØÖÆ - Óû§ÓëDocker¾µÏñ²Ö¿âͨ¹ý¡°ÏîÄ¿¡±½øÐÐ×éÖ¯¹ÜÀí£¬Ò»¸öÓû§¿ÉÒÔ¶Ô¶à¸ö¾µÏñ²Ö¿âÔÚͬһÃüÃû¿Õ¼ä£¨project£©ÀïÓв»Í¬µÄȨÏÞ¡£
2.¾µÏñ¸´ÖÆ - ¾µÏñ¿ÉÒÔÔÚ¶à¸öRegistryʵÀýÖи´ÖÆ£¨Í¬²½£©¡£ÓÈÆäÊʺÏÓÚ¸ºÔؾùºâ£¬¸ß¿ÉÓ㬻ìºÏÔÆºÍ¶àÔÆµÄ³¡¾°¡£
3.ͼÐλ¯Óû§½çÃæ - Óû§¿ÉÒÔͨ¹ýä¯ÀÀÆ÷À´ä¯ÀÀ£¬¼ìË÷µ±Ç°Docker¾µÏñ²Ö¿â£¬¹ÜÀíÏîÄ¿ºÍÃüÃû¿Õ¼ä¡£
4.AD/LDAP Ö§³Ö - Harbor¿ÉÒÔ¼¯³ÉÆóÒµÄÚ²¿ÒÑÓеÄAD/LDAP£¬ÓÃÓÚ¼øÈ¨ÈÏÖ¤¹ÜÀí¡£
5.É󼯹ÜÀí - ËùÓÐÕë¶Ô¾µÏñ²Ö¿âµÄ²Ù×÷¶¼¿ÉÒÔ±»¼Ç¼׷ËÝ£¬ÓÃÓÚÉ󼯹ÜÀí¡£
6.¹ú¼Ê»¯ - ÒÑÓµÓÐÓ¢ÎÄ¡¢ÖÐÎÄ¡¢µÂÎÄ¡¢ÈÕÎĺͶíÎĵı¾µØ»¯°æ±¾¡£¸ü¶àµÄÓïÑÔ½«»áÌí¼Ó½øÀ´¡£
7.RESTful API - RESTful API Ìṩ¸ø¹ÜÀíÔ±¶ÔÓÚHarbor¸ü¶àµÄ²Ù¿Ø,
ʹµÃÓëÆäËü¹ÜÀíÈí¼þ¼¯³É±äµÃ¸üÈÝÒס£
8.²¿Êð¼òµ¥ - ÌṩÔÚÏߺÍÀëÏßÁ½ÖÖ°²×°¹¤¾ß£¬ Ò²¿ÉÒÔ°²×°µ½vSphereƽ̨(OVA·½Ê½)ÐéÄâÉ豸¡£
Õâ¾ÍÊǹÙÍøÔ»°¡£ÍêÃÀ½âÊÍÁËʲôÊÇHarbor?ΪʲôҪѡÔñHarbor¡£ÉÏÃæ½âÊÍÄÇô¶àµÄHarbor,
ÏÖÔÚÎÒÃÇÀ´¿ªÊ¼°²×°°É¡£
Harbor°²×°
Òª°²×°Harbor,ÓÐÒÔϼ¸¸öÏȾöÌõ¼þ£º
1.Python°æ±¾´óÓÚ»òÕßµÈÓÚ2.7
2.Docker engineµÄ°æ±¾´óÓÚµÈÓÚ1.10
3.Docker ComposeµÄ°æ±¾´óÓÚ1.6.0
Ê×ÏÈÎÒÃÇÐèÒª¼ì²é×Ô¼º·þÎñÆ÷ÊÇ·ñÖ§³ÖÉÏÃæ3¸öÌõ¼þ¡£ÊäÈëÒÔÏ´úÂë¼ì²é
#python2.7¹ÙÍø°²×°Ò³Ãæ
https://www.python.org/downloads/release/python-2711/
#¼ì²éPython°æ±¾.Ubuntu 16.04ÒѾ¼¯³ÉÁËpython2.7¡£
python -V
#¼ì²éDockerµÄ°æ±¾
docker -v
#Docker Compose°²×°½Å±¾
sudo curl -L https://github.com/docker/compose/releases
/download/1.6.0/docker-compose-`uname
-s`-`uname -m` -o /usr/local/bin/docker-compose
#¼ì²éDocker ComposeµÄ°æ
docker-compose --version
#Èç¹ûÌáʾPermission denied¡£Ö´ÐÐÒÔÏÂÓï¾ä¸³È¨
sudo chmod +x /usr/local/bin/docker-compose |
È·±£·þÎñÆ÷ÉϵÄÈí¼þ°æ±¾ÒѾÂú×ãÒÔÉÏÒªÇóÖ®ºó¡£ÎÒÃÇÏÖÔÚ¿ªÊ¼°²×°Harbor¡£Èç¹û²»ÖªµÀÔõô°²×°docker
¿ÉÒԲο¼ÎÒ²©¿Í֮ǰµÄÎÄÕ¡£´«ËÍÃÅ
ÏÂÔØHarbor
#ÏÂÔØ°²×°°ü
wget https://github.com/vmware/harbor/releases
/download/v1.1.2/harbor-offline-installer-v1.1.2.tgz
#½âѹ
tar -xzf harbor-offline-installer-v1.1.2.tgz
cd harbor
#±à¼ÅäÖÃÎļþ
vi harbor.cfg |
ÅäÖÃÎļþ×¢ÊͲο¼
##
Configuration file of Harbor
#ÉèÖ÷ÃÎʵØÖ·£¬Ö§³ÖIP£¬ÓòÃû£¬Ö÷»úÃû£¬½ûÖ¹ÉèÖÃ127.0.0.1
hostname = reg.mydomain.com
#·ÃÎÊ·½Ê½£¬http»òÕßhttps
ui_url_protocol = http
#Óʼþ֪ͨÏà¹ØÉèÖÃ
email_server = smtp.mydomain.com
email_server_port = 25
email_username = sample_admin@mydomain.com
email_password = abc
email_from = admin <sample_admin@mydomain.com>
email_ssl = false
#Óû§µÇ¼ÃÜÂë
harbor_admin_password = Harbor12345
#harborÈÏ֤ģʽ£¬Ä¬ÈÏΪdb_auth£¬±¾µØmysql£¬Ò²¿ÉÒÔÅäÖÃldapÈÏÖ¤
auth_mode = db_auth
#ldapÈÏÖ¤ÅäÖÃ
ldap_url = ldaps://ldap.mydomain.com
ldap_basedn = ou=people,dc=mydomain,dc=com
ldap_uid = uid
ldap_scope = 3
#mysqlÊý¾Ý¿âÉèÖÃ
db_password = root123
self_registration = on
use_compressed_js = on
max_job_workers = 3
token_expiration = 30
verify_remote_cert = on
customize_crt = on
#ÏÔʾµÄÈÏÖ¤¼°×éÖ¯ÐÅÏ¢
crt_country = CN
crt_state = State
crt_location = CN
crt_organization = organization
crt_organizationalunit = organizational unit
crt_commonname = example.com
crt_email = example@example.com
project_creation_restriction = everyone
#SSLÖ¤Ê鵨ַ¡£Ö»ÓпªÆôhttps·ÃÎʲÅÉúЧ
ssl_cert = /data/cert/server.crt
ssl_cert_key = /data/cert/server.key
############# |
ÒÔÉϰ´ÕÕ×Ô¼ºÐèÇóÐ޸ġ£Èç¹ûÏ뿪Æôhttpsģʽ·ÃÎÊÐèÒª×Ô¼ºÉêÇësslÖ¤Êé¡£harborĬÈϼàÌý80¶Ë¿Ú¡£Èç¹ûÐèÒªÐ޸Ķ˿ڡ£ÇëÐÞ¸ÄĿ¼ÏµÄdocker-compose.ymlÎļþ£¬

ÐÞ¸ÄÍê³ÉÖ®ºó¡£ÔËÐÐ
½øÐа²×°¡£°²×°Íê³ÉÖ®ºóËû»á×Ô¼ºÆô¶¯¡£ÕâÀïËû»á×Ô¼ºÏÂÔØÒ»Ð©ËûËùÐèµÄimages¡£¹ý³ÌÓеãÂý¡£¿ÉÒÔͨ¹ý°¢ÀïÔÆµÄ¾µÏñ¼ÓËÙÆ÷À´¼ÓËÙ¡£°¢ÀïÔÆ¾µÏñ¼ÓËÙÆ÷
.´ò¿ªÁ´½ÓµÇ¼֮ºóµã»÷¾µÏñ¼ÓËÙ¡£È»ºóÄã»áµÃµ½Ò»¸öרÊô¼ÓËÙµØÖ·¡£Èçͼ

¿ÉÒÔ¸ù¾Ý×Ô¼ºµÄ»·¾³²é¿´Îĵµ°²×°Ê¹Óá£È»ºóµÈ´ýÃüÁîÖ´ÐнáÊø¡£

¿ªÆôhttps
Èç¹ûʹÓÃhttpµÄÕâÀï¿ÉÒÔÌø¹ý£¬ÎÒÃǰÑÒѾÉêÇëºÃµÄÖ¤ÊéÎļþ·Åµ½/data/cert
Ŀ¼ÏÂÃæ¡£È»ºóÐÞ¸Äharbor.cfgÎļþ

??°²×°³É¹¦Ö®ºó´ò¿ªÖ®Ç°×Ô¼ºÉ趨µÄÓòÃû»òÕßIPµØÖ·¡£²âÊÔµØÖ· ¡£²âÊÔÓû§Ãû:harbor_test£¬²âÊÔÃÜÂ룺Harbor_test123

ʹÓÃharbor
´´½¨Óû§
harborÒѾ´´½¨³É¹¦¡£ÏÖÔÚÎÒÃÇÀ´¿ªÊ¼´´½¨Ò»¸öÓû§¡£

´´½¨ÏîÄ¿
´´½¨ÏîÄ¿£¬²¢Ìí¼ÓÓû§

ÉÏ´«¾µÏñ
Ê×ÏÈʹÓÃdocker loginÃüÁîµÇ¼£º
#怬
robin:~ robin$ sudo docker login shepherd618.cn
Username: admin
Password:
Login Succeeded
#²é¿´±¾µØ¾µÏñ
robin:docker_demo robin$ sudo docker images
Password:
REPOSITORY TAG IMAGE ID CREATED SIZE
docker_demo latest fdd994bee741 19
seconds ago 283MB
node 8.9-alpine 406f227b21f5 2 weeks ago 68.1MB
#¸ødcoker_demoÐÂÔötag
robin:docker_demo robin$ sudo docker
tag docker_demo
shepherd618.cn/test/demo
#push images
robin:docker_demo robin$ docker push
shepherd618.cn/test/demo
The push refers to repository [shepher
d618.cn/test/demo]
f8387a884f73: Layer already exists
d74f9d9e7013: Pushed
f846841ed47f: Layer already exists
0198944a9875: Layer already exists
9dfa40a0da3b: Layer already exists
latest: digest: sha256:5b33acc5edf6f48
cbd8e7ccd216daa4a
7da1ebd4871fbc68bc2517136f1ccf44
size: 1374 |
È»ºó´ò¿ªharbor,»á¿´µ½¸Õ¸ÕÉÏ´«µÄimagesºÍ²Ù×÷ÈÕÖ¾

µ±ÎÒÃÇÐèÒªÓõ½Õâ¸öimagesµÄʱºò¿ÉÒÔͨ¹ýÉÏÃæ¸øµÄpullÃüÁîÏÂÔØµ½±¾µØ¡£µ½´ËÕû¸ö°²×°¹ý³Ì½áÊø¡£ |