±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚwww.cnblogs.com£¬Ö÷ҪΪʲôÊÇDocker-compose£¬ÎªÊ²Ã´ÒªÓÃDocker-compose£¬Docker-compose°²×°ºÍʹÓᣠ|
|

ʲôÊÇDocker-compose
compose ·Òë³ÉÖÐÎĵÄÒâ˼ÊÇ"¹¹³É"ºÍ"×é³É"µÄÒâ˼¡£DockerÎÒ֮ǰ°ÑËû±È×÷Ò»¸ö´óÂÖ´¬£¬Õâ¸öÂÖ´¬ÉÏÃæ¿ÉÒԷźܶàºÜ¶àµÄÏä×Ó¡£Õâ¸öÏä×ÓÎÒÃÇ¿ÉÒÔ¿´×öÊÇÒ»¸ö¸öµÄÈÝÆ÷(container)¡£ÄÇôDocker-compose¿ÉÒÔ¿´µ½ÊǾÍÊǰÑÒ»¸ö¸öÏä×Ó×éºÏÔÚÒ»Æð³ÉΪһ¸ö´óÕûÌåµÄÒâ˼¡£¿ÉÒÔͳһж»õ,ÉÏ»õ¡£·ÅÔÚÎÒÃǵÄÓ¦ÓÃÖоÍÊÇ¿ÉÒÔͨ¹ýDocker-compose¹ÜÀíÎÒÃÇÈÝÆ÷(container)¡£ÕâÀïÖ»ÊÇÒ»¸öͨË׵ıÈÓ÷¡£ÀíÂÛÖÁÉÙ¿ÉÒԲο¼Docker-compose¹Ù·½Îĵµ
¡£
ΪʲôҪÓÃDocker-compose
docker-compose ÊÇÒ»¸öÓÃÀ´°Ñ docker ×Ô¶¯»¯µÄ¶«Î÷£¬ÓÐÁË
docker-compose Äã¿ÉÒÔ°ÑËùÓз±¸´µÄ docker ²Ù×÷¼ò»¯³ÉÒ»ÌõÃüÁ×Ô¶¯»¯µÄÍê³É¡£ËûÓÐÒÔϼ¸¸öÌØµã£º
"Ò»¼ü"Æô¶¯£¬Í£Ö¹ºÍÖØ½¨·þÎñ
¿ÉÒԲ鿴ÔËÐзþÎñµÄ״̬
ʵʱµÄÈÕÖ¾Êä³ö
ʹÓÃdocker-compose¿ÉÒÔ´ó´ó¼õÉÙdockerµÄ²¿Êðʱ¼ä¡£¼õÉÙ¼Ó°à¡£±È½ÏÓÐʱ¼ä¿ÉÒÔ¶à¶àÅãÅã¼ÒÈË¡£
Docker-compose°²×°ºÍʹÓÃ
°²×°
ÒªÏë°²×°ºÍʹÓÃDocker-compose±ØÐë±£Ö¤µ±Ç°±¾»úµÄdockerµÄ°æ±¾´óÓÚ1.3¡£Ê×Ïȼì²éµ±Ç°µ±Ç°±¾»údocke°æ±¾ºÍ¼ì²éÓÐûÓа²×°Docker-compose£º
#¼ì²édocker°æ±¾ sudo
docker -v #¼ì²éDocker-composeµÄ°æ±¾¡£ sudo docker-compose
-v #°²×°Docker-composeÃüÁî¡£°²×°Íê³ÉÖ®ºóÔÙ´ÎʹÓÃÉÏÃæÃüÁî¼ì²é°æ±¾¡£ https://github.com/docker/
compose/releases/download/1.6.0/ docker-compose-`uname
-s`-`uname -m` -o /usr/local/bin/docker-compose
#Èç¹ûÌáʾPermission denied¡£Ö´ÐÐÒÔÏÂÓï¾ä¸³È¨ sudo chmod +x
/usr/local/bin/docker-compose |
Docker-compose³£ÓÃÃüÁî
#ÒÔÏÂËùÓÐÃüÁîÐèÒªºÍd.ymlÔÚͬһĿ¼¡£Ò²¿ÉÒÔͨ¹ý
-f Ö´ÐÐ.ymlÎļþ #²é¿´µ±Ç°ÈÝÆ÷ÔËÐеÄ״̬¡£ÏÔʾÈÝÆ÷Ãû³Æ|Ö´Ðнű¾|µ±Ç°ÔËÐÐ״̬|µ±Ç°¼àÌý¶Ë¿ÚÐÅÏ¢¡£
Ö¸¶¨.ymlÎļþÓ÷¨ sudo docker-compose -f ./docker-compose.yml
ps sudo docker-compose ps #ÖØÆô»òÕßÖØÆôij¸ö·þÎñ sudo docker-compose
restart ||sudo docker-compose xxxx sudo docker-compose
restart #¹¹½¨·þÎñ sudo docker-compose build #ÏÔʾÈÕÖ¾
sudo docker-compose logs #-d±íʾºǫ́¡£upÃüÁî»á¹¹½¨£¬£¨ÖØÐ£©´´½¨£¬Æô¶¯£¬Á´½ÓÒ»¸ö·þÎñÏà¹ØµÄÈÝÆ÷¡£Ä¬ÈÏÇé¿öÏÂÈç¹ûÈÝÆ÷ÒѾ´æÔÚ£¬½«»áÍ£Ö¹²¢³¢ÊÔÖØÐ´´½¨ËûÃÇ¡£²¢Ê¹ÓÃ֮ǰ¹ÒÔØµÄ¾í¡£
# --no-recreate²ÎÊý¿ÉÒÔÈÃÈÝÆ÷²»±»Í£Ö¹»òÕßÖØÐ´´½¨ sudo docker-compose
up -d #stopºÍstartÍ£Ö¹µ±Ç°ÔËÐеÄij¸öÈÝÆ÷ sudo docker-compose
stop xxxx sudo docker-compose start xxxx #Í£Ö¹ËùÓÐÈÝÆ÷£¬²¢É¾³ýÈÝÆ÷
docker-compose down |
±àд.ymlÎļþ
docker-composeµÄÅäÖÃÎļþÊÇÒÔ.ymlΪºó׺µÄ¡£Ò»°ãÎļþÃûĬÈÏΪdocker-compose.yml¡£µ±È»Ò²¿ÉÒÔ×Ô¼º¶¨Òå¡£Ê×ÏÈÎÒÃÇÐèÒª´´½¨Ò»¸ö.ymlÎļþ,ÎÒÕâÀﻹÊÇÒÔǰdockeÈëÃÅÄǸöimagesΪÀý¡£ÕâÀïÍÆ¼öÒ»¸ö²å¼þ¡£ÈçºÎÄãÓõÄÊÇvscodeµÄ»°£¬¿ÉÒÔÊÔÊÔ¡£µØÖ·
Ëû¿ÉÒԺܷ½±ãµÄ°ïÎÒÃDZàдDockerfileºÍdocker-compose.ymlÎļþ¡£
mkdir
docker-compose
cd docker-compose
touch docker-compose.yml
vi docker-compose.yml |
È»ºóдÈëÒÔÏÂÄÚÈÝ¡£
version: '2.1'
services:
docker_demo:
image: docker_demo
build: .
environment:
NODE_ENV: production
ports:
- 8000:3000 |
±£´æÍê³ÉÖ®ºó¡£ÔÚµ±Ç°Ä¿Â¼ÏÂÃæÔËÐÐ
#Æô¶¯ÃüÁî
robin:docker-compose robin$ sudo docker-compose
up -d
Recreating dockercompose_docker_demo_1 ... done
#²é¿´µ±Ç°ÈÝÆ÷ÔËÐÐ״̬
robin:docker-compose robin$ sudo docker-compose
ps
Name Command State Ports
dockercompose_docker_demo_1 /bin/sh -c npm start
Up 0.0.0.0:9000->3000/tcp
robin:docker-compose robin$
#ÏÔʾlogs
robin:docker-compose robin$ sudo docker-compose
logs
Attaching to dockercompose_docker_demo_1
docker_demo_1 |
docker_demo_1 | > docker_demo@0.1.0 start /usr/src/app
docker_demo_1 | > node server.js
docker_demo_1 |
robin:docker-compose robin$ |
È»ºó´øÀ´ä¯ÀÀÆ÷ÊäÈëhttp://localhost:9000 ¾Í¿ÉÒÔ¿´µ½ÎÒÃÇÊìϤµÄ"Hello
docker"¡£
docker-compose.ymlÎļþ½á¹¹²Î¿¼
#°æ±¾
version: '2.1'
#·þÎñ²¿ÃÅ
services:
#·þÎñÃû³Æ
docker_demo:
#¾µÏñÃû³Æ»òÕßimages id ¡£Èç¹û±¾µØ²»´æÔÚ×Ô¼º»áÏÂÔØ
image: docker_demo
#ʹÓÃupÃüÁîÆô¶¯Ê±»áÖ´Ðй¹½¨ÈÎÎñ¡£¿ÉÒÔÖ¸Ïò Dockerfile Îļþ¡£
build: .
#»·¾³±äÁ¿
environment:
NODE_ENV: production
#¼àÌý¶Ë¿Ú¡£¶ÔÍⱩ¶¶Ë¿Ú:ÈÝÆ÷ÄÚ¶Ë¿Ú
ports:
- 8000:3000
|
ÒÔÉÏÕâ¸ö.ymlµÄÖ´ÐеĽá¹ûºÍÎÒÃÇ֮ǰʹÓà docker run -d -p 9000:3000
docker_demoµÄЧ¹ûÒ»Ö¡£ÉÏÃæµÄdocker-compose.yml±È½Ï¼òµ¥¡£Ò²Ã»ÓÐÓõ½volumes¡£Ö»ÊÇÓÃÀ´ÈëÃÅ¡£ÏÂÆª»á¼ÌÐøÏêϸ½²½âdocker-compose¡£
|