Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
ÈçºÎÔÚUbuntu14.04Éϴ˽ÓÐdocker registry
 
×÷ÕߣºNik van der Ploeg À´Ô´£ºCSDN ·¢²¼ÓÚ 2015-9-8
  2630  次浏览      27
 

¼ò½é

dockerÊÇÒ»¿î²¿Êð·þÎñÆ÷µÄÇ¿ÓÐÁ¦¹¤¾ß¡£docker.ioÃâ·ÑΪÓû§ÌṩÉÏ´«¾µÏñ×ÊÔ´µ½¹Ù·½registryµÄ·þÎñ£¬È»¶ø£¬¸Ãregistry¶ÔÈκÎÈ˾ù¿ª·ÅȨÏÞ¡£Ò²Ðí¶ÔÓÚÒ»¸ö·Ç¿ªÔ´µÄÏîÄ¿£¬Äã²¢²»ÇéÔ¸Èç´Ë¡£

±¾ÎĽ«Ö¸µ¼ÄãÈçºÎ´î½¨Ë½ÓÐdocker registry£¬²¢È·±£Æä°²È«ÐÔ¡£ÔÚ±¾½Ì³ÌµÄ×îºó£¬Ä㽫Ç×ÉíÌåÑéÉÏ´«×ÔÖÆµÄdocker¾µÏñµ½Ë½ÓÐregistry£¬²¢ÔÚ²»Í¬µÄ»úÆ÷Éϰ²È«µÄ½«¸ÃÆäÀ­È¡ÏÂÀ´¡£

±¾½Ì³Ì²»°üº¬ÈçºÎÈÝÆ÷»¯Ó¦Ó÷þÎñµÄÄÚÈÝ£¬¶øÊÇÖ¼ÔÚÒýµ¼ÄãÈ¥´´½¨registryÀ´´æ´¢ÄãÒª²¿ÊðµÄ·þÎñ×ÊÔ´¡£Èç¹ûÄãÏëÒªdockerµÄÈëÃŽ̳̣¬Ò²ÐíÕâ¶ù¿ÉÒÔ°ïµ½Äã¡£

»ùÓÚUbuntu14.04ϵͳµÄµ¥registryºÍµ¥¿Í»§»úģʽ£¬±¾½Ì³ÌÒѾ­Í¨¹ý²âÊÔ£¬Ò²ÐíÔÚÆäËû»ùÓÚdebianµÄ·¢²¼ÉÏÈÔ¿ÉÒÔÔËÐС£

docker¸ÅÄî

Èç¹ûÔÚ´Ë֮ǰÄãÉÐδ½Ó´¥¹ýdocker£¬ÕâÐèÒª»¨·ÑÄ㼸·ÖÖÓµÄʱ¼äÀ´ÊìϤdockerµÄ¹Ø¼ü¸ÅÄî¡£Èç¹ûÄã¶ÔdockerÒѵÃÐÄÓ¦ÊÖ£¬Ö»ÊÇÏëÁ˽âÈçºÎ¹¹½¨Ë½ÓÐregistryµÄ»°£¬ÄÇô£¬Äã¿ÉÒÔÖ±½Ó½øÈëÏÂһС½Ú¡£

¶ÔÓÚÒ»¸öÐÂÊÖ¸ÃÈçºÎʹÓÃdocker£¬²»·ÁÊÔÊÔÕâÀïÓÅÐãµÄdocker±Ê¼Ç¡£

dockerµÄºËÐľÍÊÇÒª¶ÔÓ¦ÓÃÒÔ¼°Ó¦ÓõÄÒÀÀµÓë²Ù×÷ϵͳ·ÖÀ롣ΪÁË´ïµ½ÉÏÊöÄ¿µÄ£¬docker²ÉÓÃÈÝÆ÷Óë¾µÏñ»úÖÆ¡£Ò»¸ödocker¾µÏñ»ù±¾ÉÏÊÇÒ»¸öÎļþϵͳµÄÄ£°å¡£µ±Äãͨ¹ýdocker runÃüÁîÔËÐÐÒ»¸ödocker¾µÏñʱ£¬¸ÃÎļþϵͳµÄÒ»¸öʵÀý¼´±»¼¤»î£¬²¢ÇÒÔËÐÐÔÚϵͳÄÚµÄdockerÈÝÆ÷Ö®ÖС£Ä¬Èϵ쬏ÃÈÝÆ÷ÎÞ·¨´¥¼°Ô­Ê¼¾µÏñÒÔ¼°docker±¾ÉíËùÔËÐÐÔÚµÄÖ÷»úµÄÎļþϵͳ¡£ÕâÊÇÒ»¸ö¶ÀÁ¢µÄ»·¾³¡£

¶ÔÈÝÆ÷Ëù×öµÄÈκθ͝¶¼½«±£´æÔÚÈÝÆ÷±¾ÉíÖ®ÄÚ£¬²¢²»»áÓ°ÏìԭʼµÄ¾µÏñ¡£Èç¹ûÏë±£ÁôÕâЩ¸Ä¶¯£¬ÄÇô£¬¿ÉÒÔͨ¹ýdocker commitÃüÁÈÝÆ÷±£´æÎª¾µÏñ¡£ÕâÒâζÄã¿ÉÒÔͨ¹ýÔ­ÓеÄÈÝÆ÷À´ÑÜÉú³öеÄÈÝÆ÷£¬¶ø²»»á¶ÔԭʼÈÝÆ÷£¨»ò¾µÏñ£©Ôì³ÉÈκÎÓ°Ïì¡£Èç¹ûÄãÊìϤgit£¬ÄÇôÄã»á¾õµÃ¸ÃÁ÷³ÌÊ®·ÖÑÛÊ죺´ÓÈÎÒâµÄÈÝÆ÷ÉÏÈ¥´´½¨ÐµķÖÖ§£¨ÕâÀ·ÖÖ§µÄÒâ˼¼´ÎªdockerÖеľµÏñ£©¡£ÔËÐоµÏñÀàËÆÓÚÖ´ÐÐgit checkout²Ù×÷¡£

¸ü½øÒ»²½ÐÎÈÝ£¬ÔËÐÐ˽ÓÐdocker registry£¬¾ÍºÃ±ÈΪdocker¾µÏñÔËÐÐ˽ÓÐgit²Ö¿â¡£

µÚÒ»²½¡ª¡ª°²×°±ØÒªµÄÈí¼þ

ÔÚdocker registry·þÎñÆ÷ÉÏ£¬Ó¦µ±´´½¨Ò»¸öÓµÓÐsudoȨÏÞµÄÓû§£¨Èç¹û¿ÉÒÔ£¬ÔÚ¿Í»§»úÉÏÒ²Èç´Ë£©¡£

docker registryÈí¼þÊÇÒ»¿îpythonÓ¦Óã¬Òò´ËΪÁËʹÆäÄܹ»ÔËÐÐÆðÀ´£¬ÐèÒª°²×°python¿ª·¢»·¾³ÒÔ¼°±ØÒªµÄ¿â£º

sudo apt-get update
sudo apt-get -y install build-essential python-dev  libevent-dev python-pip liblzma-dev

µÚ¶þ²½¡ª¡ª°²×°²¢ÅäÖÃdocker registry

ΪÁ˰²×°×îеÄÎȶ¨µÄdocker registry·¢Ðа棨×÷Õß׫ÎÄʱΪ0.7.3£¬ÒëÕßÒëʱΪ0.9.1£©£¬ÎÒÃǽ«Ê¹ÓÃpython°ü¹ÜÀí¹¤¾ßpip£º

sudo pip install docker-registry

docker-registryÐèÒªÅäÖÃÎļþ¡£

ĬÈϵأ¬pip½«¸ÃÅäÖÃÎļþ·ÅÖÃÔÚÏ൱ƫƧµÄµØ·½£¬ÒòϵͳÖÐpythonµÄ°²×°Î»ÖöøÒì¡£Òò´Ë£¬ÎªÁËÕÒµ½¸Ã·¾¶£¬ÎÒÃǽ«³¢ÊÔÔËÐÐregistry£¬ÒԲ鿴Ïà¹ØµÄÊä³ö£º

gunicorn --access-logfile - --debug -k gevent -b 0.0.0.0:5000 -w 1 docker_registry.wsgi:application

ÓÉÓÚÅäÖÃÎļþ²»ÔÚÕýÈ·µÄλÖã¬ÉÏÊö³¢ÊÔ½«»áÒÔʧ°Ü¶ø¸æÖÕ£¬²¢Êä³öÒ»Ìõ°üº¬FileNotFoundError´íÎóÏûÏ¢£¬ÈçÏÂËùʾ[ÔÚijЩ°æ±¾ÖУ¬ÎÞÏÂÊöÐÅÏ¢Êä³ö£¬ÒëÕß×¢]£º

FileNotFoundError: Heads-up! File is missing: /usr/local/lib/python2.7/dist-packages/docker_registry/lib/../../con

registryÔÚͬÑùµÄ·¾¶Éϰüº¬Ò»¸öʾÀýÅäÖÃÎļþ£¬¸ÃÎļþÃûΪconfig_sample.yml£¬Òò´Ë£¬ÎÒÃÇ¿ÉÒÔͨ¹ýÉÏÊö¸ø³öµÄ·¾¶ÃûÀ´¶¨Î»Ê¾ÀýÅäÖÃÎļþ¡£

´Ó´íÎóÏûÏ¢Öи´ÖÆÂ·¾¶ÐÅÏ¢£¨´ËʱΪ/usr/local/lib/python2.7/dist-packages/docker_registry/lib/../../config/config.yml£©£¬È»ºó£¬½«config.yml²¿·ÖÈ¥³ý£¬ÕâÑùÎÒÃÇ¿ÉÒÔÇл»µ½¸Ã·¾¶Ï¡£

cd /usr/local/lib/python2.7/dist-packages/docker_registry/lib/../../config/

½«config_sample.ymlÎļþµÄÄÚÈݸ´ÖƵ½config.ymlÖУº

sudo cp config_sample.yml config.yml

ĬÈÏÇé¿öÏ£¬dockerµÄÊý¾ÝÎļþ´æ·ÅÔÚ/tmpÎļþ¼ÐÏ£¬µ«ÊÇÔÚÐí¶àµÄÀàLinuxϵͳÖУ¬ÏµÍ³ÖØÆôʱ¸ÃÎļþ¼Ð±»Çå¿Õ£¬Õâ²¢²»ÊÇÎÒÃÇËùÏ£ÍûµÄ¡£ÄÇô£¬ÎÒÃÇ´´½¨Ò»¸öÓÀ¾ÃÐÔµÄÎļþ¼ÐÀ´´æ´¢Êý¾Ý£º

sudo mkdir /var/docker-registry

ºÃµÄ£¬ÏÂÃæÎÒÃÇÅäÖÃconfig.ymlÎļþ£¬½«¶ÔÎļþ¼Ð/tmpµÄÒýÓøü¸ÄΪ/var/docker-registry¡£Ê×ÏÈ£¬Ê×ÏÈÕÒµ½ÒÔsqlalchemy_index_databaseΪÊ׵Ŀ¿½üÎļþÊײ¿µÄÒ»ÐУº

sqlalchemy_index_database:
_env:SQLALCHEMY_INDEX_DATABASE:sqlite:////tmp/docker-registry.db

½«Æä¸ü¸ÄÖ¸Ïò/var/docker-registry£¬ÈçÏÂËùʾ£º

sqlalchemy_index_database:
_env:SQLALCHEMY_INDEX_DATABASE:sqlite:////var/docker-registry/docker-registry.db

ÏòÏÂÒ»µã£¬µ½local:²¿·Ö£¬Öظ´ÉÏÊö²Ù×÷£¬¸ü¸ÄÈçÏÂÄÚÈÝ£º

local: &local
storage: local
storage_path: _env:STORAGE_PATH:/tmp/registry

Ϊ£º

local: &local
storage: local
storage_path: _env:STORAGE_PATH:/var/docker-registry/registry

ÑùÀýÅäÖÃÎļþÖÐµÄÆäËûĬÈÏÖµ¾ùÎÞÐèÐ޸ġ£Ò»Ä¿Ê®Ðм´¿É¡£È»¶ø£¬Èç¹ûÄãÏëÒª×öһЩ¸´ÔÓµÄÅäÖã¬ÖîÈç²ÉÓÃÀ©Õ¹´æ´¢×°ÖÃÀ´´æ´¢dockerÊý¾Ý£¬ÄÇô¸ÃÎļþÕý¾ßÓд˹¦ÄÜ¡£µ±È»£¬ÕâÒѳ¬³ö±¾½Ì³ÌµÄ·¶Î§£¬Äã¿ÉÒԲ鿴docker-registryÎĵµÒÔ»ñÈ¡¸ü¶àµÄ°ïÖú¡£

¼ÈÈ»ÅäÖÃÎļþÒÑÖÃÓÚÕýÈ·µÄλÖã¬ÄÇôÔÙÒ»´Î³¢ÊÔÀ´²âÊÔdocker registry·þÎñÆ÷£º

gunicorn --access-logfile - --debug -k gevent -b 0.0.0.0:5000 -w 1 docker_registry.wsgi:application

Äã»á¿´µ½ÈçϵÄÊä³ö£º

2014-07-27 07:12:24 [29344] [INFO] Starting gunicorn 18.0
2014-07-27 07:12:24 [29344] [INFO] Listening at: http://0.0.0.0:5000 (29344)
2014-07-27 07:12:24 [29344] [INFO] Using worker: gevent
2014-07-27 07:12:24 [29349] [INFO] Booting worker with pid: 29349
2014-07-27 07:12:24,807 DEBUG: Will return docker-registry.drivers.file.Storage

°ô¼«ÁË£¡ÏÖÔÚÎÒÃÇÒѾ­ÓµÓÐÒ»¸öÔËÐÐ×ŵÄdocker registry¡£ÏÂÃæÖ´ÐÐCtrl+CÖÕÖ¹¸Ã³ÌÐò¡£

µ½Ä¿Ç°ÎªÖ¹£¬docker registry²¢²»ÊÇÄÇôÓÐÓá£Ëü²¢²»»á×ÔÐÐÆô¶¯³ý·ÇÎÒÃÇÖ´ÐÐÉÏÊögunicornÃüÁî¡£ÁíÍ⣬docker registry²»Ã»ÓÐÒýÈëÈκεÄÄÚÖõÄÈÏÖ¤»úÖÆ£¬Òò´Ë£¬Æäµ±Ç°×´Ì¬ÏÂÊDz»°²È«²¢ÇÒ¶ÔÍⲿÍêÈ«¿ª·ÅµÄ¡£

µÚÈý²½¡ª¡ªÒÔ·þÎñµÄÐÎʽÆô¶¯docker registry

ͨ¹ý´´½¨Upstart½Å±¾£¬ÉèÖÃdocker registryÔÚϵͳµÄÆô¶¯³ÌÐòÖпªÊ¼ÔËÐС£

Ê×ÏÈ£¬´´½¨ÈÕÖ¾ÎļþĿ¼£º

sudo mkdir -p /var/log/docker-registry

È»ºó£¬ÓÃÒ»¿îÄãÄÃÊÖµÄÎı¾±à¼­Æ÷À´´´½¨Upstart½Å±¾£º

sudo nano /etc/init/docker-registry.conf

½«ÈçÏÂÄÚÈÝдÈëÉÏÊö½Å±¾ÖУº

description "Docker Registry"

start on runlevel [2345]
stop on runlevel [016]

respawn
respawn limit 10 5

script
exec gunicorn --access-logfile /var/log/docker-registry/access.log --error-logfile /var/log/docker-registry/server.log -k gevent --max-requests 100 --graceful-timeout 3600 -t 3600 -b localhost:5000 -w 8 docker_registry.wsgi:application
end script

¸ü¶à¹ØÓÚUpstart½Å±¾µÄÄÚÈÝ£¬ÇëÔĶÁ¸Ã½Ì³Ì¡£

´Ëʱ£¬Ö´ÐÐÈçÏÂÃüÁ

sudo service docker-registry start

½«¿´µ½ÏÂÃæµÄÊä³ö£º

docker-registry start/running, process 25303

µ±È»£¬ÄãÒ²¿ÉÒÔͨ¹ýÔËÐÐÏÂÃæµÄÃüÁî²é¿´server.logÈÕÖ¾Îļþ£¬ÑéÖ¤docker-registry·þÎñÊÇ·ñÕýÔÚÔËÐУº

tail /var/log/docker-registry/server.log

Èç¹ûÒ»ÇÐÕý³£µÄ»°£¬Äã»á¿´µ½Ïñ֮ǰִÐÐgunicornÃüÁîʱÊä³öµÄÎı¾ÐÅÏ¢¡£

¼ÈÈ»docker-registry·þÎñÆ÷ÒÑÔÚºǫ́ÔËÐУ¬ÄÇôÏÂÃæÎÒÃÇÀ´ÅäÖÃNginx£¬ÒÔʹregistry¸ü¼Ó°²È«¡£

µÚËIJ½¡ª¡ªÍ¨¹ýNginxÀ´±£ÕÏdocker registryµÄ°²È«ÐÔ

ΪÁ˱ÜÃâÈκÎÈ˶¼ÄܵǽÎÒÃǵÄdocker registy·þÎñÆ÷£¬Ê×ÏÈÒª×öµÄ¾ÍÊǽ¨Á¢ÈÏÖ¤»úÖÆ¡£

ÏÂÃæ°²×°NginxºÍapache2-utils°ü£¨Í¨¹ý¸Ã°ü£¬¿ÉÒÔÇáËÉ´´½¨NginxÄܹ»¶ÁÈ¡µÄȨÏÞÎļþ£©¡£

sudo apt-get -y install nginx apache2-utils

ÏÖÔÚÀ´´´½¨dockerÓû§¡£

ͨ¹ýÏÂÃæµÄÃüÁîÀ´´´½¨µÚÒ»¸öÓû§£º

sudo htpasswd -c /etc/nginx/docker-registry.htpasswd USERNAME

µ±Ìø³öÃüÁîÐÐʱ£¬Çá¸ø³ö¸ÃÓû§µÄÃÜÂë¡£

Èç¹û½«À´ÏëÌí¼Ó¸ü¶àµÄÓû§£¬Ö»ÐèÒªÔÚÈ¥³ý¿ÉÑ¡²ÎÊýcµÄǰÌáÏ£¬ÖØÐÂÔËÐÐÉÏÊöÃüÁ

sudo htpasswd /etc/nginx/docker-registry.htpasswd USERNAME_2

ÏÖÔÚ£¬ÎÒÃÇÓµÓÐÁËÒ»¸ö´´½¨Óû§µÄÎļþdokcer-registry.htpasswd£¬ÒÔ¼°¿ÉÓõÄdocker registry·þÎñÆ÷¡£Èç¹ûÄãÏëÁ˽âÄãµÄÓû§µÄ»°Äã¿ÉÒÔËæÒâ²é¿´¸ÃÎļþ£¨Èç¹ûÏëÊÕ»ØÈ¨Ï޵ϰ¿ÉÒÔɾ³ýµô¸ÃÓû§£©¡£

ÏÂÃæ£¬ÎÒÃÇÐèÒª¸æËßNginxÈ¥ÀûÓÃȨÏÞÎļþ£¬²¢ÇÒ½«ÇëÇóת·¢¸ødocker registry¡£

ÄÇô£¬ÎÒÃÇÀ´´´½¨Ò»¸öNginxµÄÅäÖÃÎļþ¡£´´½¨Ò»¸öеÄdocker-registryÎļþ£¬±ØÒªÊ±¿ÉÄÜÐèÒªÊäÈëÖ´ÐÐsudoÃüÁîµÄÃÜÂ룺

sudo nano /etc/nginx/sites-available/docker-registry

½«ÈçÏÂÄÚÈÝÌí¼Óµ½¸ÃÎļþÖС£×¢ÊÍÒ²°üº¬ÔÚÆäÖС£¸ü¶à¹ØÓÚNginxÐéÄâÖ÷»úÅäÖÃÎļþµÄÄÚÈÝ£¬¿É²éÔĸý̡̳£

# For versions of Nginx > 1.3.9 that include chunked transfer encoding support
# Replace with appropriate values where necessary

upstream docker-registry {
server localhost:5000;
}

server {
listen 8080;
server_name my.docker.registry.com;

# ssl on;
# ssl_certificate /etc/ssl/certs/docker-registry;
# ssl_certificate_key /etc/ssl/private/docker-registry;

proxy_set_header Host $http_host; # required for Docker client sake
proxy_set_header X-Real-IP $remote_addr; # pass on real client IP

client_max_body_size 0; # disable any limits to avoid HTTP 413 for large image uploads

# required to avoid HTTP 411: see Issue #1486 (https://github.com/dotcloud/docker/issues/1486)
chunked_transfer_encoding on;

location / {
# let Nginx know about our auth file
auth_basic "Restricted";
auth_basic_user_file docker-registry.htpasswd;

proxy_pass http://docker-registry;
}
location /_ping {
auth_basic off;
proxy_pass http://docker-registry;
}
location /v1/_ping {
auth_basic off;
proxy_pass http://docker-registry;
}
}

¶Ô¸ÃÎļþ½¨Á¢Á´½Ó£¬ÕâÑùNginx¾Í¿ÉÒÔʹÓøÃÅäÖÃÎļþ£º

sudo ln -s /etc/nginx/sites-available/docker-registry /etc/nginx/sites-enabled/docker-registry

È»ºó£¬ÖØÆôNginxÒÔ¼¤»îÐéÄâÖ÷»úÅäÖãº

sudo service nginx restart

ÈÃÎÒÃÇÈ·±£Ã¿Ò»»·½Ú¶¼×¼È·ÎÞÎó¡£Nginx·þÎñÆ÷¼àÌý¶Ë¿Ú8080£¬¶ø³õʼµÄdocker-registry·þÎñÆ÷¼àÌý±¾µØ¶Ë¿Ú5000¡£

ÎÒÃÇ¿ÉÒÔͨ¹ýcurlÃüÁîÀ´²âÊÔÕû¸ö»·½ÚµÄ׼ȷÐÔ£º

curl localhost:5000

ÄãÓ¦µ±¿´µ½ÏÂÊöÊä³ö£º

"docker-registry server (dev) (v0.8.1)"

²»´í£¬docker-registryÕýÔÚÔËÐС£ÏÖÔÚ¼ì²éNginxÊÇ·ñ¹¤×÷£º

curl localhost:8080

Õâ´Î£¬Ä㽫µÃµ½HTML¸ñʽµÄÎÞȨÏÞ·ÃÎʵÄÏûÏ¢£º

<html>
<head><title>401 Authorization Required</title></head>
<body bgcolor="white">
<center><h1>401 Authorization Required</h1></center>
<hr><center>nginx/1.4.6 (Ubuntu)</center>
</body>
</html>

ͬÑùµÄ£¬Ò²¿ÉÒÔͨ¹ýÔ¶¶ËµÄ»úÆ÷ÔËÐÐÉÏÊöÁ½¸ö²âÊÔÃüÁîÀ´ÑéÖ¤¶Ë¿ÚÊÇ·ñÕýÈ·ÉèÖ㬲»¹ýÐèÒª½«localhost¸ü¸ÄΪÖ÷»úµÄIPµØÖ·¡£

ÔÚUpstartÅäÖÃÎļþÖУ¬ÎÒÃÇÉèÖÃdocker-registry½ö½ö¼àÌýÀ´×ÔlocalhostµÄÇëÇó£¬ÕâÒâζ×ÅÍâÍø½«ÎÞ·¨Í¨¹ý¶Ë¿Ú5000À´·ÃÎÊdocker-registry¡£ÁíÒ»·½Ã棬Nginx¼àÌýÀ´×Ô¶Ë¿Ú8080µÄÇëÇ󣬲¢ÇÒ¶ÔÍâÍø¿ª·Å¡£Èç¹û²¢·ÇÈç´Ë£¬ÄãÐèÒªµ÷ÕûÄãµÄ·À»ðǽȨÏÞÉèÖá£

ºÃÁË£¬È¨ÏÞÉèÖÃÒѽ¨Á¢ÆðÀ´¡£ÄÇô£¬ÏÖÔÚÎÒÃdz¢ÊÔʹÓÃÏÈǰ´´½¨µÄij¸öÓû§ÃûÀ´µÇ½Nginx£º

curl USERNAME:PASSWORD@localhost:8080

Èç¹ûÕýÈ·ÔËÐУ¬Ä㽫¿´µ½ÈçÏÂÐÅÏ¢£º

"docker-registry server (dev) (0.8.1)"

µÚÎå²½¡ª¡ª½¨Á¢SSL

µ½Ä¿Ç°ÎªÖ¹£¬ÎÒÃÇÒѾ­´î½¨ÆðÁËregistry·þÎñ£¬²¢ÇÒÔËÐÐÔÚNginxºóÃæ£¬Í¨¹ýHTTP»ù´¡ÈÏÖ¤»úÖÆÁ¬½Ó¶þÕß¡£È»¶ø£¬ÓÉÓÚÁ¬½ÓÊÇδ¼ÓÃܵģ¬ËùÒԸ÷þÎñÈÔÈ»ÊDz»°²È«µÄ¡£Ò²ÐíÄãÒѾ­Ö÷Òªµ½ÁËÏÈǰ´´½¨µÄNginxÅäÖÃÎļþÖб»×¢Ê͵ôµÄ¹ØÓÚSSLµÄ²¿·Ö¡£

¼¤»îSSL¡£Ê×ÏÈ£¬´ò¿ªNginxÎļþÒÔ±¸±à¼­£º

sudo nano /etc/nginx/sites-available/docker-registry

ÕÒµ½ÏÂÊöÄÚÈÝ£º

server {
listen 8080;
server_name my.docker.registry.com;

# ssl on;
# ssl_certificate /etc/ssl/certs/docker-registry;
# ssl_certificate_key /etc/ssl/private/docker-registry;

ɾ³ýSSLÐÐÊ×µÄ#¡£Èç¹ûÄãµÄ·þÎñÆ÷ÓÐ×Ô¼ºµÄÓòÃûµÄ»°£¬½«server_name¸ü¸ÄΪÄãµÄÓòÃû¡£Íê³ÉºóÓ¦µ±ÈçÏÂËùʾ£º

server {
listen 8080;
server_name yourdomain.com;

ssl on;
ssl_certificate /etc/ssl/certs/docker-registry;
ssl_certificate_key /etc/ssl/private/docker-registry;

±£´æ¸ÃÎļþ¡£ÏÖÔÚ£¬NginxÒѾ­±»ÅäÖÃʹÓÃSSL£¬ÏÂÃæ½«»á·Ö±ð´Ó/etc/ssl/certs/docker-registryºÍ/etc/ssl/private/docker-registryÎļþÖÐËÑË÷SSLÖ¤ÊéºÍÃØÔ¿¡£

Èç¹ûÄãÒѾ­ÓµÓÐÁËÒ»¸öSSLÖ¤Êé»òÕßÕý×¼±¸È¥¹ºÂòÒ»¸öµÄ»°£¬Äã½öÐèÒª½«Ö¤ÊéºÍÃØÔ¿¿½±´µ½ÉÏÊöËùÁеÄ·¾¶Ï£¨ssl_certificateºÍssl_certficate_key£©

Ò²¿ÉÒÔÃâ·Ñ»ñµÃÒ»¸öÇ©ÃûSSLÖ¤Êé¡£

»òÕߣ¬Ê¹ÓÃÒ»¸ö×ÔÇ©ÃûµÄSSLÖ¤Êé¡£ÓÉÓÚdockerµ±Ç°²»ÔÊÐíʹÓÃ×ÔÇ©ÃûµÄSSLÖ¤Ê飬Õ⽫´øÀ´¼Ó±¶µÄ¸´ÔÓ¶È£¬ÒòΪÎÒÃDZØÐëÈ¥´î½¨ÏµÍ³À´³äµ±ÎÒÃÇÒѾßÓÐÇ©ÃûȨÏÞµÄÖ¤Êé¡£

½¨Á¢Ç©ÃûÖ¤Êé

Ê×ÏÈ£¬´´½¨´æ·ÅÖ¤ÊéµÄĿ¼²¢½øÈë¸ÃĿ¼£º

mkdir ~/certs
cd ~/certs

Éú³ÉÒ»¸öеĸùÃØÔ¿£º

openssl genrsa -out devdockerCA.key 2048

Éú³ÉÒ»¸ö¸ùÖ¤Êé£¨ÌøÈëÃüÁîÐÐʱ¿ÉÊäÈëÈκÎÄÚÈÝ£©£º

openssl req -x509 -new -nodes -key devdockerCA.key -days 10000 -out devdockerCA.crt

È»ºó£¬Îª·þÎñÆ÷Éú³ÉÒ»¸öÃØÔ¿£¨ÉÔºó»á½«¸ÃÎļþ¿½±´µ½/etc/ssl/private/docker-registry¸øNginxʹÓã©£º

openssl genrsa -out dev-docker-registry.com.key 2048

ÏÖÔÚ£¬ÎÒÃDZØÐëÉú³ÉÖ¤ÊéÇ©ÃûÇëÇó¡£

ÔÚÊäÈëÏÂÃæµÄOpenSSLÃüÁîºó£¬½«»áÌøÈëÃüÁîÐÐģʽ£¬ÐèÒªÄãÊäÈëһЩÎÊÌâµÄ´ð°¸¡£¶ÔÓÚÇ°ÃæµÄһЩÎÊÌ⣬¿ÉËæÒâ±à¼­£¬µ«Êǵ±ÒªÇóÄã¼üÈë¡°Common Name¡±Ê±£¬È·±£ÊäÈëµÄÊÇÄãµÄ·þÎñÆ÷µÄÓòÃû¡£

openssl req -new -key dev-docker-registry.com.key -out dev-docker-registry.com.csr

ÀýÈ磬ÄãµÄdocker-registry½«ÒÔwww.ilovedocker.comΪÓòÃûÔËÐУ¬È»ºóÄãµÄÊäÈëÓ¦µ±ÈçÏÂËùʾ£º

Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:www.ilovedocker.com
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

ÇÐÎðÊäÈëÌôÕ½Â롣Ȼºó£¬ÎÒÃÇÐèÒª¶ÔÖ¤ÊéµÄÇëÇó½øÐÐÇ©Ãû£º

openssl x509 -req -in dev-docker-registry.com.csr -CA devdockerCA.crt -CAkey devdockerCA.key -CAcreateserial -out d

¼ÈÈ»ÎÒÃÇÒÑÉú³ÉÁËËùÐèµÄÖ¤ÊéÎļþ£¬ÏÂÃæ¾Í½«ËüÃÇ¿½±´µ½ÕýÈ·µÄλÖá£

Ê×ÏÈ£¬½«Ö¤ÊéºÍÃØÔ¿¿½±´µ½NginxÔ¤ÆÚµÄ·¾¶£º

sudo cp dev-docker-registry.com.crt /etc/ssl/certs/docker-registry
sudo cp dev-docker-registry.com.key /etc/ssl/private/docker-registry

ÓÉÓÚÉú³ÉµÄÕâЩ֤Ê鲢ûÓеõ½ÈκÎÒ»¸öÖøÃûµÄÖ¤ÊéÈÏÖ¤»ú¹¹£¨ÀýÈ磬VeriSign£©ÑéÖ¤£¬ÎÒÃÇÐèÒª¸æËßÄÇЩ¼´½«Á¬½Ó¸Ãdocker-registryµÄ¿Í»§»ú£¬¸ÃÖ¤ÊéÊǺϷ¨µÄ¡£ÎÒÃDZ¾µØ×ö³öÉÏÊöÈÏÖ¤£¬ÒÔ±ã¿ÉÒÔÔÚdocker-registry·þÎñÆ÷ÉÏʹÓÃdocker£º

sudo mkdir /usr/local/share/ca-certificates/docker-dev-cert
sudo cp devdockerCA.crt /usr/local/share/ca-certificates/docker-dev-cert
sudo update-ca-certificates

¿ÉÄܱØÐëÔÚÿһ̨ÏëÒªÁ¬½Ó¸Ãdocker-registryµÄÖ÷»úÉÏÖ´ÐÐÉÏÊö²Ù×÷¡£·ñÔò£¬Ä㽫µÃµ½SSL´íÎó²¢ÇÒÎÞ·¨È¡µÃÁ¬½Ó£¬ÕâЩ²½Ö轫ÔÚ¿Í»§¶Ë²âÊÔС½ÚÖÐÔٴγöÏÖ¡£

SSL²âÊÔ

ÖØÆôNginxÒÔÖØÐÂÔØÈëÅäÖÃÎļþºÍSSLÃØÔ¿£º

sudo service nginx restart

ÔÙ´ÎÖ´ÐÐcurl²âÊÔ£¨½ö´Ë´ÎʹÓÃhttps£©ÒÔÑéÖ¤SSLÕýÈ·¹¤×÷¡£±ØÐë¼ÇסµÄÊÇ£¬ÎªÁËÈÃSSLÄܹ»ÕýÈ·ÔËÐУ¬Äã±ØÐëʹÓÃÔÚ´´½¨SSLÖ¤ÊéµÄ֮ǰ£¬ÔÚCommon NameÓòÊäÈëµÄÓòÃû¡£

curl https://USERNAME:PASSWORD@YOUR-DOMAIN:8080

ÀýÈ磬ÈôÓû§ÃûºÍÃÜÂë·Ö±ðΪnikºÍtest£¬²¢ÇÒSSLÖ¤ÊéÊÇΪÓòÃûwww.ilovedocker.com£¬ÄÇô£¬Ä㽫ÊäÈëÈçϵÄÃüÁ

curl https://nik:test@www.ilovedocker.com:8080

Èç¹ûÒ»ÇÐ˳ÀûµÄ»°£¬Äã»á¿´µ½ÊìϤµÄÄÚÈÝ£º

"docker-registry server (dev) (v0.8.1)"

·ñÔò£¬ÖØÐ¼ì²é½¨Á¢SSLµÄÏà¹Ø²½Ö裬ÒÔ¼°NginxÅäÖÃÎļþ£¬ÒÔÈ·±£Ò»ÇÐÕý³£¡£

µ½Ä¿Ç°ÎªÖ¹£¬ÎÒÃÇÒѾ­½¨Á¢ÁËÔËÐÐÔÚNginx·þÎñÆ÷ºóÃæµÄdocker regsitry£¬¶øNginxͨ¹ýSSL¿ÉÒÔÌṩȨÏÞÈÏÖ¤ºÍ¼ÓÃÜ¡£

µÚÁù²½¡ª¡ªÍ¨¹ýÆäËûÖ÷»ú·ÃÎÊdocker registry

ΪÁËÄܹ»·ÃÎÊdocker registry£¬Ê×ÏÈÒª½«ÏÈǰ´´½¨µÄSSLÖ¤ÊéÌí¼Óµ½ÐµÄÖ÷»úÖС£¸ÃÖ¤ÊéÎļþλÓÚ~/certs/devdockerCA.crt¡£¿ÉÒÔÑ¡ÔñÖ±½Ó½«Æä¸´ÖƵ½ÐµĻúÆ÷ÖУ¬»òÕ߸ù¾ÝÒÔÏÂ˵Ã÷À´½øÐп½±´Õ³Ìù£º

ÔÚregistry·þÎñÆ÷ÉÏ£¬²é¿´Ö¤Ê飺

cat ~/certs/devdockerCA.crt

¿ÉµÃµ½ÀàËÆÈçϵÄÊä³ö£º

-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJANiXy7fHSPrmMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX
aWRnaXRzIFB0eSBMdGQwHhcNMTQwOTIxMDYwODE2WhcNNDIwMjA2MDYwODE2WjBF
MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50
ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEAuK4kNFaY3k/0RdKRK1XLj9+IrpR7WW5lrNaFB0OIiItHV9FjyuSWK2mj
ObR1IWJNrVSqWvfZ/CLGay6Lp9DJvBbpT68dhuS5xbVw3bs3ghB24TntDYhHMAc8
GWor/ZQTzjccHUd1SJxt5mGXalNHUharkLd8mv4fAb7Mh/7AFP32W4X+scPE2bVH
OJ1qH8ACo7pSVl1Ohcri6sMp01GoELyykpXu5azhuCnfXLRyuOvQb7llV5WyKhq+
SjcE3c2C+hCCC5g6IzRcMEg336Ktn5su+kK6c0hoD0PR/W0PtwgH4XlNdpVFqMST
vthEG+Hv6xVGGH+nTszN7F9ugVMxewIDAQABo1AwTjAdBgNVHQ4EFgQULek+WVyK
dJk3JIHoI4iVi0FPtdwwHwYDVR0jBBgwFoAULek+WVyKdJk3JIHoI4iVi0FPtdww
DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAkignESZcgr4dBmVZqDwh
YsrKeWSkj+5p9eW5hCHJ5Eg2X8oGTgItuLaLfyFWPS3MYWWMzggxgKMOQM+9o3+k
oH5sUmraNzI3TmAtkqd/8isXzBUV661BbSV0obAgF/ul5v3Tl5uBbCXObC+NUikM
O0C3fDmmeK799AM/hP5CTDehNaFXABGoVRMSlGYe8hZqap/Jm6AaKThV4g6n4F7M
u5wYtI9YDMsxeVW6OP9ZfvpGZW/n/88MSFjMlBjFfFsorfRd6P5WADhdfA6CBECG
LP83r7/MhqO06EOpsv4n2CJ3yoyqIr1L1+6C7Erl2em/jfOb/24y63dj/ATytt2H
6g==
-----END CERTIFICATE-----

¿½±´¸ÃÊä³öµ½Õ³Ìù°å£¬²¢ÇÒÁ¬½Óµ½¿Í»§»ú¡£

ÔÚ¿Í»§»úÉÏ£¬´´½¨Ö¤ÊéĿ¼£º

sudo mkdir /usr/local/share/ca-certificates/docker-dev-cert

´ò¿ªÖ¤ÊéÎļþÒÔ±¸±à¼­£º

nano /usr/local/share/ca-certificates/docker-dev-cert/devdockerCA.crt

Õ³ÌùÖ¤ÊéÄÚÈÝ[ÒÑÔÚÕ³Ìù°åÉÏ£¬ÒëÕß×¢]¡£

ͨ¹ý²é¿´¸øÎļþÀ´ÑéÖ¤Ö¤ÊéÒѱ£´æµ½¿Í»§»úÉÏ£º

cat /usr/local/share/ca-certificates/docker-dev-cert/devdockerCA.crt

Èç¹ûÒ»ÇÐ˳ÀûµÄ»°£¬Äã»á¿´µ½ºÍ֮ǰһÑùµÄÊä³öÎı¾£º

-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJANiXy7fHSPrmMA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV
...
...
LP83r7/MhqO06EOpsv4n2CJ3yoyqIr1L1+6C7Erl2em/jfOb/24y63dj/ATytt2H
6g==
-----END CERTIFICATE-----

ÏÖÔÚ£¬¸üÐÂÖ¤Ê飺

sudo update-ca-certificates

»áµÃµ½ÐÎÈçÏÂÎĵÄÊä³ö£¨Ö÷ÒªÕâÀïµÄ¡±1 added¡±£©

Updating certificates in /etc/ssl/certs... 1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d....done.

Èç¹ûÄãµ½ÏÖÔÚ»¹Ã»Óа²×°dockerÔÚÕą̂¿Í»§»úÉϵģ¬ÂíÉϰ²×°°É¡£

ÔÚUbuntuµÄ´ó¶àÊý°æ±¾ÖУ¬Äã½öÐèÏÂÃæÕ⼸¸öÃüÁî¾ÍÄܹ»¿ìËÙ°²×°×îаæµÄdocker¡£Èç¹ûÄãµÄÊÇÆäËûµÄ·¢²¼»òÕßÓöµ½ÁËһЩÄÑÌ⣬ÄÇôÄã¿ÉÒԲ鿴docker°²×°Ö¸ÄÏ£¬ÒÔѰÆäËû³ö·¡£

Ìí¼Ó²Ö¿âÃØÔ¿£º

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA8

´´½¨Ò»¸öÎļþÀ´ÂÞÁÐdocker²Ö¿â£º

sudo nano /etc/apt/sources.list.d/docker.list

sudo nano /etc/apt/sources.list.d/docker.list

deb https://get.docker.io/ubuntu docker main

¸üаüÁÐ±í£º

sudo apt-get update

°²×°docker£º

sudo apt-get install -y --force-yes lxc-docker

ΪÁËʹdockerÄܸü¿ìµÄ¹¤×÷ÆðÀ´£¬½«µ±Ç°Óû§¼ÓÈëµ½docker×éÖУ¬²¢ÇÒÖØ¿ªÒ»¸öеÄÃüÁîÐÐģʽ£º

sudo gpasswd -a ${USER} docker
sudo su -l $USER #(±ØÒªÊ±Ðè¼üÈëÃÜÂë)

ÖØÆôdockerÒÔÈ·±£ÆäÖØÐÂÔØÈëϵͳµÄCAÖ¤Êé¡£

sudo service docker restart

´Ëʱ£¬ÄãÓ¦µ±Äܹ»´Ó¸Ã¿Í»§»úµÇ½docker registry·þÎñÆ÷£º

docker login https://YOUR-HOSTNAME:8080

×¢Ò⣬´ËʱӦµ±Ê¹ÓÃhttps://ÒÔ¼°¶Ë¿Ú8080¡£ÊäÈëÏÈǰÉèÖõÄÓû§ÃûºÍÃÜÂ루ÓʼþµØÖ·¿ÉËæÒâÊäÈ룩¡£Õâʱ£¬ÄãÓ¦µ±¿´µ½Login SucceededµÄ³É¹¦µÇ½ÏûÏ¢¡£

´Ëʱ£¬docker registryÒÔ¹¹½¨²¢ÔËÐÐÆðÀ´¡£ÈÃÎÒÃÇÀ´×ö¸ö²âÊԵľµÏñÍÆË͵½registryÉÏ¡£

µÚÆß²½¡ª¡ª·¢²¼µ½docker registryÉÏ

ÔÚ¿Í»§»úÉÏ£¬´´½¨Ò»¸öСµÄ¡¢¿ÕµÄ¾µÏñ£¬È»ºóÍÆË͵½registryÉÏ¡£

docker run -t -i ubuntu /bin/bash

ÔÚÍê³ÉÏÂÔØÖ®ºó£¬Äã¾Í½øÈëdockerÃüÁîÐÐģʽ¡£¶Ô¸ÃÎļþϵͳ×öһЩСµÄ¸Ä±ä£º

touch /SUCCESS

´ÓdockerÈÝÆ÷ÖÐÍ˳ö£º

exit

½«Ëù×öµÄ¸ü¸ÄÌá½»£º

docker commit $(docker ps -lq) test-image

Èç¹û´ËʱִÐÐdocker imagesÃüÁÄã»áÔÚ¾µÏñÁбíÀ¿´µ½ÒѾ­ÓµÓÐÁËÒ»¸öеÄtest-image¾µÏñ¡£

# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
test-image latest 1f3ce8008165 9 seconds ago 192.7 MB ubuntu trusty ba5877dc9bec 11 days ago 192.7 MB

´Ëʱ£¬¸Ã¾µÏñÖ»´æÔÚÓÚ±¾µØ¡£ÄÇôÎÒÃǽ«ÆäÍÆË͵½Ð½¨µÄregistryÉÏ¡£

Ê×ÏÈ£¬´ÓdockerµÇ½registry¡£×¢Ò⣬ÄãÒªÓÃhttps://ÒÔ¼°8080¶Ë¿Ú£º

docker login https://<YOUR-DOMAIN>:8080

ÊäÈëÒÑÉèÖõÄÓû§ÃûºÍÃÜÂ룺

Username: USERNAME
Password: PASSWORD
Email:
Account created. Please see the documentation of the registry http://localhost:5000/v1/ for instruction

dockerÓÐÒ»¸ö·ÇͬѰ³£µÄ»úÖÆÀ´Ã÷È·½«¾µÏñÍÆË͵ÄÄÄÀïµÄregistry¡£±ØÐ뽫¾µÏñ´òÉÏ˽ÓÐregistry·¾¶±êÇ©²ÅÄÜʵÏÖ½«ÆäÍÆËÍÉÏÈ¥¡£ÄÇôÎÒÃǽ«¸Ã¾µÏñ´òÉÏÎÒÃÇ˽ÓÐregistryµÄ±êÇ©£º

docker tag test-image YOUR-DOMAIN:8080/test-image

×¢Ò⣬Ïȸø³ö¾µÏñµÄ±¾µØÃû³Æ£¬È»ºó¸ø³öÏëÒª½«Æä´ò³ÉµÄ±êÇ©¡£¸Ã±êÇ©Éϲ»°üº¬https://£¬½öÓÐÓòÃû£¬¶Ë¿ÚºÍ¾µÏñÃû×Ö¡£

ÏÖÔÚ¿ÉÒÔ½«¾µÏñÍÆË͵½registryÉÏÁË¡£´Ëʱ£¬½öʹÓñêÇ©Ãû£º

docker push <YOUR-DOMAIN>:8080/test-image

¸Ã¹ý³Ì»á»¨·ÑһЩʱ¼ä½«¾µÏñÉÏ´«µ½registryÉÏ¡£ÄãÒ²»á¿´µ½°üº¬Image successfully pushedÊä³öÏûÏ¢¡£

µÚ°Ë²½¡ª¡ª´Ódocker registryÀ­È¡¾µÏñ

ΪÁËÈ·±£Ò»ÇÐÔËÐÐÕý³££¬ÈÃÎÒÃǻص½³õʼµÄ·þÎñÆ÷ÉÏ£¨°²×°docker regsitryµÄ»úÆ÷ÉÏ£©£¬½«´Ó¿Í»§»úÍÆËÍÉÏÀ´µÄ¾µÏñÀ­È¡ÏÂÀ´¡£ÄãÒ²¿ÉÒÔ´ÓµÚÈý·½µÄ·þÎñÆ÷ÉÏÀ´²âÊÔÕâÒ»²½¡£

Èç¹ûÔÚ¼´½«²âÊÔÀ­È¡µÄ·þÎñÆ÷ÉÏ»¹Ã»Óа²×°docker£¬»Øµ½µÚÁù²½È¥²Î¿´°²×°ËµÃ÷£¨Èç¹ûÊǵÚÈý·½µÄ·þÎñÆ÷£¬ÄÇô²Î¿´SSL˵Ã÷Ò»½Ú£©¡£

ʹÓÃ֮ǰ´´½¨µÄÓû§ÃûºÍÃÜÂëµÇ½£º

docker login https://<YOUR-DOMAIN>:8080

ÏÖÔÚÀ´À­È¡¾µÏñ¡£½öÐèҪʹÓôò±êÇ©µÄ¾µÏñµÄÃû×Ö£¬°üÀ¨ÓòÃû£¬¶Ë¿ÚºÅÒÔ¼°¾µÏñÃû£¨¶øÃ»ÓÐhttps://£©£º

docker pull <YOUR-DOMAIN>:8080/test-image

docker»áÖ´ÐÐһЩÏÂÔØÈÎÎñ²¢»ØÍË»áÃüÁîÐÐģʽ¡£Èç¹ûÄãÔÚÕâ¸öеĻúÆ÷ÉÏÔËÐиþµÏñµÄ»°£¬Äã»á¿´µ½Ö®Ç°´´½¨µÄSUCCESSÎļþ£º

docker run -t -i <YOUR-DOMAIN>:8080/test-image /bin/bash

ÂÞÁÐÎļþ£º

ls

Äã»á¿´µ½ÎÒÃÇ֮ǰ´´½¨µÄSUCCESSÎļþ£º

SUCCESS  bin  boot  dev  etc  home  lib  lib64  media   mnt  opt  proc  root  run  sbin  srv  sys  tmp 

¹§Ï²Ä㣡ÄãÒѾ­Ê¹ÓÃ˽ÓеÄdocker registryʵÏÖÁËÍÆËͺÍÀ­È¡¾µÏñ¡£Happy Docker-ing!£¡

ÒÔÏÂÄÚÈÝΪÒëÕß×¢¡£

ÔÚ·­ÒëÕâÆªÎÄÕÂ֮ǰ£¬ÒëÕß°´ÕÕ×÷ÕߵIJ½ÖèÈ¥¹¹½¨×Ô¼ºµÄregistry£¬ÖмäÓйý²»ÉÙµÄÇúÕۺͿӣ¬Í¬Ê±½áºÏÔ­ÎĵįÀÂÛÒÔ¼°ÒëÕß×Ô¼ºËѼ¯µÄ×ÊÁÏ£¬×îÖÕʵÏÖÁË˽ÓÐregistryµÄ¹¹½¨£¬Òò´Ë£¬ÒëÕ߸üÏëºÍ´ó¼Ò·ÖÏíÒÔÏÂÕâÀïÃæÐèҪעÒâµÄµØ·½¡£

°²×°build-essential°üʱ¿ÉÄÜ»áÓÐÎÊÌ⣬ÐèÒª°²×°Ò»Ð©ÒÀÀµ°ü£¬²¢ÇÒÓÉÓÚ°üÒÀÀµµÄ°æ±¾ÓÐÎÊÌ⣬ÐèÒªÏÈÐ¶ÔØÄ³¸ö°ü£¬ÔÙÖØÐÂÒ»Æð°²×°¡£ÎÒÓÃubuntuµÄdeaktop°æ¾Í±¨ÁËÒÀÀµ°ü°æ±¾µÄÎÊÌ⣬¶øserver°æË³Àûͨ¹ý¡£ÒÀÀµ°ü°æ±¾ÎÊÌâÒ²¿ÉÒÀÕÕÏÂÎĵÚ3µãÈ¥½â¾ö£¬°üºó¼Ó·¢²¼µÄÃû×Ö£¬Ö¸¶¨°üµÄ°æ±¾¡£

ÔÚ°²×°registry֮ǰ£¬Í¨³£ÐèÔ¤ÏȰ²×°swig£º

sudo apt-get -y install swig

¹ØÓÚ°²×°registry¹ý³ÌÖÐÓöµ½opensslµÄÎÊÌâ½â¾ö£º°²×°libssl1.0.0£¬opensslÒÔ¼°libssl-dev¡£

½â¾ö·½°¸ÎªÈçÏ£¬Õâ¶ùµÄtrustyÊÇUbuntu14.04LTS°æ±¾µÄÃû³Æ¡£

sudo apt-get -y install libssl1.0.0/trusty libssl-dev/trusty  openssl/trusty

ÒëÕßµÄÔËÐл·¾³ÊÇ£ºregistryÔÚUbuntu 14.04 VM+²âÊԵĿͻ§»úÔÚboot2docker£¬²¢ÇÒʹÓõÄ×ÔÇ©ÃûÖ¤Ê顣ΪÁËʹboot2dockerÓÐȨÏ޵ǽregistry£¬ÐèÒª½«registry·þÎñÆ÷ÉϵÄÖ¤Ê飨ÔÚ~/certs/devdockerCA.crt£©ÄÚÈÝ¿½±´µ½boot2dockerµÄ/usr/local/etc/ssl/certs/ca-certificates.crtÎļþÖС£curl²âÊÔʱÐèÒª¼Ó-k²ÎÊý¡£

ΪÁËÄܹ»½âÎöÄãµÄÓòÃû£¬×îºÃÔÚ/etc/hostsÎļþÖÐ×¢Ã÷һϣ¨Linux£©£»windowsÔÚC:\Windows\System32\drivers\etc\hosts¡£

   
2630 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÔÆ¼ÆËãµÄ¼Ü¹¹
¶ÔÔÆ¼ÆËã·þÎñÄ£ÐÍ
ÔÆ¼ÆËãºËÐļ¼ÊõÆÊÎö
Á˽âÔÆ¼ÆËãµÄ©¶´
 
Ïà¹ØÎĵµ

ÔÆ¼ÆËã¼ò½é
ÔÆ¼ÆËã¼ò½éÓëÔÆ°²È«
ÏÂÒ»´úÍøÂç¼ÆËã--ÔÆ¼ÆËã
ÈídzÎöÔÆ¼ÆËã
 
Ïà¹Ø¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
ÔÆ¼ÆËãÓ¦ÓÃÓ뿪·¢
CMMIÌåϵÓëʵ¼ù
»ùÓÚCMMI±ê×¼µÄÈí¼þÖÊÁ¿±£Ö¤
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

ר¼ÒÊӽǿ´ITÓë¼Ü¹¹
Èí¼þ¼Ü¹¹Éè¼Æ
ÃæÏò·þÎñÌåϵ¼Ü¹¹ºÍÒµÎñ×é¼þµÄ˼¿¼
ÈËÈËÍøÒÆ¶¯¿ª·¢¼Ü¹¹
¼Ü¹¹¸¯»¯Ö®ÃÕ
̸ƽ̨¼´·þÎñPaaS
Ïà¹ØÅàѵ¿Î³Ì

ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ
Windows Azure ÔÆ¼ÆËãÓ¦ÓÃ

ĦÍÐÂÞÀ­ ÔÆÆ½Ì¨µÄ¹¹½¨ÓëÓ¦ÓÃ
ͨÓù«Ë¾GE DockerÔ­ÀíÓëʵ¼ù
ijÑз¢ÖÐÐÄ Openstackʵ¼ù
ÖªÃûµç×Ó¹«Ë¾ ÔÆÆ½Ì¨¼Ü¹¹ÓëÓ¦ÓÃ
ijµçÁ¦ÐÐÒµ »ùÓÚÔÆÆ½Ì¨¹¹½¨ÔÆ·þÎñ
ÔÆ¼ÆËãÓëWindows AzureÅàѵ
±±¾© ÔÆ¼ÆËãÔ­ÀíÓëÓ¦ÓÃ