¼ò½é
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ÃüÁîÀ´²âÊÔÕû¸ö»·½ÚµÄ׼ȷÐÔ£º
ÄãÓ¦µ±¿´µ½ÏÂÊöÊä³ö£º
"docker-registry server (dev) (v0.8.1)" |
²»´í£¬docker-registryÕýÔÚÔËÐС£ÏÖÔÚ¼ì²éNginxÊÇ·ñ¹¤×÷£º
Õâ´Î£¬Ä㽫µÃµ½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ØÐëÈ¥´î½¨ÏµÍ³À´³äµ±ÎÒÃÇÒѾßÓÐÇ©ÃûȨÏÞµÄÖ¤Êé¡£
½¨Á¢Ç©ÃûÖ¤Êé
Ê×ÏÈ£¬´´½¨´æ·ÅÖ¤ÊéµÄĿ¼²¢½øÈë¸ÃĿ¼£º
Éú³ÉÒ»¸öеĸùÃØÔ¿£º
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 |
¸üаüÁÐ±í£º
°²×°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ÃüÁîÐÐģʽ¡£¶Ô¸ÃÎļþϵͳ×öһЩСµÄ¸Ä±ä£º
´ÓdockerÈÝÆ÷ÖÐÍ˳ö£º
½«Ëù×öµÄ¸ü¸ÄÌá½»£º
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 |
ÂÞÁÐÎļþ£º
Äã»á¿´µ½ÎÒÃÇ֮ǰ´´½¨µÄ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¡£
|