×ðÁú¿­Ê±¹ÙÍøµÇ¼

ÔõÑùÔÚLinuxЧÀÍÆ÷ÉϽ¨ÉèÇå¾²¿É¿¿µÄDocker¾µÏñ¿ÍÕ»£¿

ÔõÑùÔÚlinuxЧÀÍÆ÷ÉϽ¨ÉèÇå¾²¿É¿¿µÄdocker¾µÏñ¿ÍÕ»£¿

Ëæ×ÅÈÝÆ÷ÊÖÒյĿìËÙÉú³¤ £¬DockerÒѾ­³ÉΪÁ˹¹½¨ºÍÖÎÀíÈÝÆ÷»¯Ó¦Óõij£Óù¤¾ß ¡£È»¶ø £¬ÔÚÏÖʵӦÓÃÖÐ £¬ÔõÑù½¨ÉèÒ»¸öÇå¾²¿É¿¿µÄDocker¾µÏñ¿ÍջȴÊÇÒ»¸öÖ÷ÒªµÄÎÊÌâ ¡£±¾ÎĽ«ÏÈÈÝÔõÑùÔÚLinuxЧÀÍÆ÷ÉϽ¨ÉèÒ»¸öÇå¾²¿É¿¿µÄDocker¾µÏñ¿ÍÕ» £¬²¢Ìṩ´úÂëʾÀýÒÔ¹©²Î¿¼ ¡£

×°ÖÃDocker

Ê×ÏÈ £¬ÐèÒªÔÚLinuxЧÀÍÆ÷ÉÏ×°ÖÃDocker ¡£¿ÉÒÔͨ¹ýÒÔÏÂÏÂÁî×°Öãº

$ sudo apt-get update
$ sudo apt-get install docker-ce

µÇ¼ºó¸´ÖÆ

×°ÖÃÍê³Éºó £¬ÔËÐÐÒÔÏÂÏÂÁîÑé֤װÖÃÊÇ·ñÀֳɣº

$ docker version

µÇ¼ºó¸´ÖÆ

ÉèÖÃDocker¾µÏñ¿ÍÕ»

½ÓÏÂÀ´ £¬ÐèÒªÉèÖÃDocker¾µÏñ¿ÍÕ» ¡£¿ÉÒÔÑ¡ÔñʹÓÃDocker¹Ù·½µÄRegistry¾µÏñ»òÕßµÚÈý·½µÄ¿ªÔ´¾µÏñ £¬ÈçHarbor¡¢NexusµÈ ¡£

ÒÔʹÓÃDocker¹Ù·½µÄRegistry¾µÏñΪÀý £¬¿ÉÒÔͨ¹ýÒÔÏÂÏÂÁîÆô¶¯Ò»¸öRegistryÈÝÆ÷£º

$ docker run -d -p 5000:5000 --name registry registry:latest

µÇ¼ºó¸´ÖÆ

Æô¶¯Íê³Éºó £¬¿ÉÒÔͨ¹ýÒÔÏÂÏÂÁîÑéÖ¤RegistryÊÇ·ñÕý³£ÊÂÇ飺

$ curl http://localhost:5000/v2/_catalog

µÇ¼ºó¸´ÖÆ

ÈôÊÇ·µ»Ø¿ÕÊý×é[] £¬ËµÃ÷RegistryÒѾ­ÀÖ³ÉÔËÐÐ ¡£

ÉèÖþµÏñ¿ÍÕ»µÄÈÏÖ¤ºÍÊÚȨ

ΪÁË°ü¹Ü¾µÏñ¿ÍÕ»µÄÇå¾² £¬ÐèÒªÌí¼ÓÈÏÖ¤ºÍÊÚȨ¹¦Ð§ ¡£¿ÉÒÔʹÓÃNginx×÷Ϊ·´ÏòÊðÀíЧÀÍÆ÷ £¬²¢Ê¹ÓÃBasic AuthÈÏÖ¤·½·¨ ¡£

Ê×ÏÈ £¬×°ÖÃNginx£º

$ sudo apt-get install nginx

µÇ¼ºó¸´ÖÆ

È»ºó £¬½¨ÉèÒ»¸öÓÃÓÚ´æ·ÅÈÏÖ¤ÐÅÏ¢µÄÃÜÂëÎļþ£º

$ sudo sh -c "echo -n 'admin:' >> /etc/nginx/.htpasswd"
$ sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"

µÇ¼ºó¸´ÖÆ

½¨ÉèÍê³Éºó £¬ÐèÒª±à¼­NginxÉèÖÃÎļþ/etc/nginx/sites-available/default £¬Ìí¼ÓÈçÏÂÄÚÈÝ£º

server {
    listen 80;
    server_name <your-domain-name>;

    location / {
        proxy_pass http://localhost:5000;

        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

µÇ¼ºó¸´ÖÆ

Ìæ»» ΪÄãµÄÓòÃû ¡£

ÉúÑÄÉèÖÃÎļþ²¢ÖØÆôNginx£º

$ sudo systemctl restart nginx

µÇ¼ºó¸´ÖÆ µÇ¼ºó¸´ÖÆ

ÉèÖÃHTTPSÖ§³Ö

ΪÁË°ü¹ÜͨѶµÄÇå¾²ÐÔ £¬¿ÉÒÔʹÓÃHTTPSЭÒé¾ÙÐÐͨѶ ¡£ÐèÒªÏÈΪ¾µÏñ¿ÍÕ»ÌìÉú×ÔÊðÃûÖ¤Êé ¡£

Ê×ÏÈ £¬×°ÖÃOpenSSL£º

$ sudo apt-get install openssl

µÇ¼ºó¸´ÖÆ

È»ºó £¬ÌìÉú˽ԿºÍ×ÔÊðÃûÖ¤Ê飺

$ sudo openssl req -newkey rsa:2048 -nodes -keyout registry.key -x509 -days 365 -out registry.crt

µÇ¼ºó¸´ÖÆ

ÌìÉúµÄregistry.keyΪ˽ԿÎļþ £¬registry.crtΪ×ÔÊðÃûÖ¤ÊéÎļþ ¡£

½ÓÏÂÀ´ £¬±à¼­NginxÉèÖÃÎļþ/etc/nginx/sites-available/default £¬Ìí¼ÓÈçÏÂÄÚÈÝ£º

server {
    listen 443 ssl;
    server_name <your-domain-name>;

    ssl_certificate /path/to/registry.crt;
    ssl_certificate_key /path/to/registry.key;

    location / {
        proxy_pass http://localhost:5000;

        auth_basic "Restricted";
        auth_basic_user_file /etc/nginx/.htpasswd;
    }
}

µÇ¼ºó¸´ÖÆ

Ìæ»» ΪÄãµÄÓòÃû ¡£

ÉúÑÄÉèÖÃÎļþ²¢ÖØÆôNginx£º

$ sudo systemctl restart nginx

µÇ¼ºó¸´ÖÆ µÇ¼ºó¸´ÖÆ

ʹÓÃDocker¿Í»§¶ËÓë¾µÏñ¿ÍÕ»½»»¥

×îºó £¬Ê¹ÓÃDocker¿Í»§¶ËÓë¾µÏñ¿ÍÕ»½»»¥ ¡£Ê×ÏÈ £¬ÐèҪΪDockerÉèÖÃÐÅÍеĿÍÕ»£º

$ sudo vi /etc/docker/daemon.json

µÇ¼ºó¸´ÖÆ

ÔÚÉèÖÃÎļþÖÐÌí¼ÓÈçÏÂÄÚÈÝ£º

{
    "insecure-registries": ["<your-domain-name>:5000"]
}

µÇ¼ºó¸´ÖÆ

ÉúÑÄÉèÖÃÎļþ²¢ÖØÆôDockerЧÀÍ£º

$ sudo systemctl restart docker

µÇ¼ºó¸´ÖÆ

ÏÖÔÚ¿ÉÒÔʹÓÃDocker¿Í»§¶ËÓë¾µÏñ¿ÍÕ»½»»¥ÁË £¬ÀýÈç £¬ÍÆËͺÍÀ­È¡¾µÏñ£º

$ docker tag image <your-domain-name>:5000/image
$ docker push <your-domain-name>:5000/image
$ docker pull <your-domain-name>:5000/image

µÇ¼ºó¸´ÖÆ

ÒÔÉϾÍÊÇÔÚLinuxЧÀÍÆ÷ÉϽ¨ÉèÇå¾²¿É¿¿µÄDocker¾µÏñ¿ÍÕ»µÄËùÓа취ºÍ´úÂëʾÀý ¡£Í¨¹ý×ñÕÕÕâЩ°ì·¨ £¬Äú¿ÉÒÔ½¨ÉèÒ»¸öÇå¾²¿É¿¿µÄDocker¾µÏñ¿ÍÕ» £¬È·±£ÈÝÆ÷»¯Ó¦ÓõĿɿ¿ÐÔºÍÇå¾²ÐÔ ¡£

ÒÔÉϾÍÊÇÔõÑùÔÚLinuxЧÀÍÆ÷ÉϽ¨ÉèÇå¾²¿É¿¿µÄDocker¾µÏñ¿ÍÕ»£¿µÄÏêϸÄÚÈÝ £¬¸ü¶àÇë¹Ø×¢±¾ÍøÄÚÆäËüÏà¹ØÎÄÕ£¡

ÃâÔð˵Ã÷£ºÒÔÉÏչʾÄÚÈÝȪԴÓÚÏàÖúýÌå¡¢ÆóÒµ»ú¹¹¡¢ÍøÓÑÌṩ»òÍøÂçÍøÂçÕûÀí £¬°æȨÕùÒéÓë±¾Õ¾ÎÞ¹Ø £¬ÎÄÕÂÉæ¼°¿´·¨Óë¿´·¨²»´ú±í×ðÁú¿­Ê±¹ÙÍøµÇ¼ÂËÓÍ»úÍø¹Ù·½Ì¬¶È £¬Çë¶ÁÕß½ö×ö²Î¿¼ ¡£±¾ÎĽӴýתÔØ £¬×ªÔØÇë˵Ã÷À´ÓÉ ¡£ÈôÄúÒÔΪ±¾ÎÄÇÖÕ¼ÁËÄúµÄ°æȨÐÅÏ¢ £¬»òÄú·¢Ã÷¸ÃÄÚÈÝÓÐÈκÎÉæ¼°ÓÐÎ¥¹«µÂ¡¢Ã°·¸Ö´·¨µÈÎ¥·¨ÐÅÏ¢ £¬ÇëÄúÁ¬Ã¦ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼ʵʱÐÞÕý»òɾ³ý ¡£

Ïà¹ØÐÂÎÅ

ÁªÏµ×ðÁú¿­Ê±¹ÙÍøµÇ¼

18523999891

¿É΢ÐÅÔÚÏß×Éѯ

ÊÂÇéʱ¼ä£ºÖÜÒ»ÖÁÖÜÎå £¬9:30-18:30 £¬½ÚãåÈÕÐÝÏ¢

QR code
ÍøÕ¾µØͼ